Also, doesn't a very large percent of the money invested in a business go towards supporting themselves too? To keep things running, people have to be rewarded, just like any other organization. Bills have to be paid, people have to be fed. And its even harder to keep good people on board at a nonprofit when they could be making 3x as much at a for-profit company.
I've worked with dozens of nonprofits and have a bunch of friends that do. They drive me completely insane with disorganization, red tape and horror stories of mismanagement. But I've never met someone who worked in a legitimate nonprofit who's heart wasn't in the right place. At the end of the day, the money is usually doing something good