Linux has the stereotype of being the OS for 'geeks', i.e. those who like to tinker with their computers, instead of doing things with them. Coupled with the fact that it's not exactly created with the first-timer in mind (I tried an experimental install of Ubuntu once, and the installation of such was a pure nightmare, and using it was WORSE! I had no choice but to reformat the HD & reinstall Windows XP. Ironically, the experimental install of the beta of Vista was almost EMBARRASSINGLY easy). That, and the lack of software (and finding device drivers for Linux, compared with Windows).
And now you know why Windows has dominance of the OS market, and not just because it's preinstalled on off-the-peg PCs ), otherwise, people would be reformatting the HD & installing Linux en masse. Until Linux is as easy to install as Windows, drivers are as easy to find as Windows, there's as much software available as Windows, and is as easy to use as Windows (i.e. eliminating the need to use Command Line), then Linux might start eating into Microsoft's monolithic presence & thus it's profits. But it has to overcome that 'geek'-y image, and extremely steep learning curve & lack of drivers/software.
Pic very related.