I really like the idea put forward by snowdrift.coop, encouraging people to set aside some money to fund beneficial open-source projects so that everyone can benefit. The more people pledge to support a given project, the more funding that project gets, growing exponentially. On the receiving end, it seems like a great way to get this kind of project funded, since the people - particularly big companies - each give a little money to build up the common goods in software.
On the other hand, it still relies on charitable giving. Yes, if you fund the development of, say, OpenSSL, which almost everyone uses, then you get active development and the benefits of a well-supported library with motivated developers and proper funding instead of a library casually (but passionately) developed by volunteers in their spare time. But if everyone else funds the project and you don't, you still get that benefit. I'm not clear how Snowdrift solves that problem, except that witholding your funding means a greater chance that the development will stall and you won't get the benefits at all.
Mokalus of Borg
PS - Which is just a statement of the snowdrift problem, I realise.
PPS - I'm not quite sure if that counts as circular.