At work, I have noticed what seems like an inherent resistance against FOSS. I'll try to summarize what I believe are the main reasons for this.

Free lunch

Firstly, There Ain't No Such Thing As A Free Lunch.[1]" In our consumer society, where you get what you pay for[2], combining free and good is an oxymoron. Computer nerds never seem to accept the status quo, and have long provided proof against these statements[3, 4].

It's also important to include just what non-technical end users mean by the terms "free" and "good". "Free as in freedom[5]" is a godsend for the average Mr Fixit computer nerd, but end users couldn't care less. Code changes aside, I believe this is mainly because of lower expectations to technology; the status quo is always good enough. My family would happily use Word 6.0 today, limited features, incompatibilities, bugs, and crashes included. When DRM or format incompatibilities stop users from doing what they want, they will just stick with the tools which "work".

"Good" in the eyes of the end user is very much different from the view of the typical nerd. End users won't read manuals (most of them are useless anyway), and don't want to know about the features which are not absolutely necessary. This is probably the reason for Microsoft setting "Hide unused menu items" as the default in the Office suite.

Publicity and FUD

Since open source benefits from being as open as possible, all the flaws of the software is exposed to the world. If a single person somewhere has managed to provoke a bug in an open source application, no matter if the context and event sequence is completely singular, anyone interested can use the bug report as part of a reasoning for why the software is not ready for prime time, regardless of how many are already using it. On the other hand, for most (all?) closed source projects, there is nowhere to go to monitor the bug fixing process. Maybe it's fixed in the next release, maybe not. Maybe never.

The complete openness of FOSS is like having a super high resolution video camera in your face, broadcasting live 24/7. It'll show every pimple, bruise, sneeze, and grimace, exposing every flaw for the world to see. For the burqa-wearing closed software, it's an easy target. Just wait until a major flaw is discovered, yell "See?!?", and don't mention that the flaw was fixed two days later.

In addition, most open source projects rely on word of mouth for spreading, especially since their startup assets seldom include money at all*. This naturally propagates fastest among nerds, since they have no competition argument for not advertizing the latest and greatest to their fellows, and since any user would like as many others as possible to use the same as them, to speed up development.

Release procedures

It is easy to see that open source projects care less for the hype of release numbers than their counterparts: While Firefox is currently at version 1, it's considered far superior to Internet Explorer 6 in such areas as security[6], feature set[7], and web standards support[8 (Update: sorry, the link is dead)]. Also, I don't think I've ever seen an open source software project which deviates from the standard "1.2[.3]" version numbering. This may at first seem like a bad thing for the end users, since they will have to test multiple applications if they really want to determine which one is the best. However, this is the only way to determine personal "goodness".

*Notable examples to the contrary are Firefox and RedHat Linux.