When working in the confines of my home, I happen to be a FreeBSD user though I have broken down and installed XP on one of the laptops. My machines at home range from Sun Ultra Sparc II's to Intel Quad Core Xeons and I've found that I can't rely on one flavor of Linux for anything.
I find that a pragmatic approach to OS selection is in fact required. There can be little arguing that each one has its own merits. Windows is excellent for drivers and hardware compatability which makes using a system much less daunting to your average yokel. There is little to no need to understand how a .conf file works in order to configure your software in the windows world nor is there a need to understand the directory structures. Linux systems are fast, affordable, and generally very customizable.
My complaint with *nix based systems around the board is that they are inherently a lot of work. I don't do a lot in the world of gaming, but I am a semi-pro photographer and graphic designer. I need full access to tools like Photoshop, Flash, etc., and I don't want to have to spend hours trying to get Wine (Windows Emulation) or WineX (Windows Emulation with DirectX) to work properly. My alternatives, like the Gimp, or Blender (I have no suitable replacement for Flash) are not as robust in functionality without having some measurable skill in software development.
Further more, when upgrading software components either via cvsup or whatever method is provided in your flavor of linux, not all dependencies are necessarily upgraded and can cause cascading issues that run the risk of tapping you of time, energy, and motivation.
On the average, the general user isn't up to the task of trying to symlink libraries, examine dependencies, and do the work needed to keep a linux machine running effectively. Likewise, most users really want to watch videos, surf the web, check email, and maybe do some word processing or spreadsheet building and they want it to be simple to get started.
Linux has a long way to go.