The biggest problem linux faces is business. Most businesses wont touch free software because of the lack of liability associated with it. And this is important as businesses need to report the failures. Sure you can get support packages from vendors, but the linux thing is too small to contend. The other issue is that people that use it are caught up in it and over estimate the scale that it's deployment is at. If you then compare this to the reality; many many more machines have windows versions on. Its hard to admit this for a geek (I have used linux for around 10 years now, and I love it to bits...), its harder to realise that its entirely likely this won't change.