That's very different to providing support or customer response surveys. Rather than waiting to see what they get or be asked what they want, users become proactive. Developing code for open source projects encourages good programming practices. When many geographically isolated people with limited time are working together it is very important to write modular code. The interfaces between these modules need to be well defined and strictly followed.
Small modules are necessary to allow developers to do effective work in short bursts.
This was made very clear by the problems with the Mozilla project. Strong progress is being made and the community is growing now that the main code base has been simplified and separated into managable modules. Also affecting developers is the conscious thought that anyone can read their code. That makes the inner workings almost as important as the external functionality. The desire to impress peers with the elegance of your code is strong.