These products were developed by an entire community of developers and users. Because the source code is available to the world, a user who wants to fix a problem or add a feature is free to go ahead and do it. Beta testing for proprietary software is not as effective as it could be because the testers do not get the source code. They can only report bugs, not help fix them. Something like 400,000 beta testers are working on Windows 2000.
Humans do all kinds of things for free, for joy and satisfaction.
In my previous life as an ace massage therapist, I met many people who had ditched high-paying but unfulfilling jobs for a smaller or even nonexistent paycheck, doing something they loved. Their only regrets were not making the change sooner. Just doing what you really really want is wonderful. By the time this is printed, I will have abandoned my well-paying but unsatisfying job to work for myself again. I like being the boss and doing things my way.