(This page is for technical and team-issues: arguments about whether it's economical for particular situations can go elsewhere.)
It's not MagicFairyDust?, but free projects tend to do some important things well:
Free software works because there are already established standards (TCP/IP) and reference implementations (Unix) which reduce the architecture, design, and communications overhead for free software collaborators to near-zero. When you try to do anything novel, you find that free software doesn't work because emailing some collaborator across the planet can never replace face to face interaction. In particular, it is generally impossible to do PairProgramming for most FreeSoftware. Another reason WhyFreeSoftwareWorks (at least in the Linux camp) is because it leverages the fanaticism of its developers and users. Yet another reason is because it leverages unused academic talent, as well as university funds. And a final reason is because software is an instance of applied research so the same model (and all its associated warts) of free collaboration which applies to academic research expresses itself as FreeSoftware.
It also works because its users are also testers. Many more users of free software will report a bug because they will usually get the bug fixed without paying money for it as opposed to many commercial products, where you have to buy an upgrade. -- DougKing