I wish I could upvote this comment a million times. I see the same kind of ignorance-of-their-options (note I specifically say ignorance-of-their-options; I'm not saying anyone is generally ignorant) reflected when developers complain that it's hard to get under the hood of Windows or when developers complain about the tooling on Windows. You'd at least hope that this segment of the user-base would have more intellectual curiosity sometimes.
From the software developer angle, Windows is a FANTASTIC system when you need to get down to the nuts and bolts. People really need to educate themselves about the registry and the various ways the OS can be tweaked; as well as the various tools available (at a bare minimum those from Sysinternals).
Some other examples - the extensible kernel-level instrumentation that you get from ETW; the excellent crash and hang analysis tools provided by the likes of WinDbg (supported by the excellent debugging support in the Windows kernel -- yes, you can enable a keyboard shortcut that will memory dump your machine if it's hung and then it's a few commands to see what crashed); the commandline environment provided by PowerShell (I haven't used it much but really need to get into it more). Not to mention Application Verfier.
I could keep going on and on but it'd probably cloud my point if I haven't done so already :)
Not saying it's perfect or the be-all-and-end-all either; I also use all three major OSs, though primarily develop .NET software on Windows. Just frustrating that many of the complaints can be boiled down to "Windows doesn't work just like Linux/Unix does".