In some cases the contributors just want to contribute (whatever it is, code, help, research, etc) and the people running the sites, even if they are making “a profit” give the contributors that chance. I think the social networking sites can be very revealing of the other sites as well. We do social networking for entertainment, and it’s free, so we really shouldn’t have a problem. We are having fun even if we are generating inordinate amounts of money for someone else at the same time. If you contribute to wikipedia, you are doing it because you are getting some benefit from it as well. Anyone who is doing coding for community projects is happy that they exist - it’s much more satisfying that doing personal projects that no one will ever see and you won’t ever think about again.
I agree that it would be better to be your own boss, but it’s not always practical.