1) The lack of control and visibility with operating system internals
2) Ridiculous number of daemons / services that are needed for the system to start
3) large number of undocumented system APIs that some pieces of software use, then the APIs are stuck in the OS forever to prevent incompatibility with those applications
4) Configurations are stored in a set of overly-complex files
5) Dynamically linked libraries required for the kernel to even boot
6) Has many built-in language interpreters (Visual Basic, .net, DirectX, etc) and none are cross-platform (No perl, no python, no Java)
7) case-insensitive file systems
9) no support for adding mount points during install (EG, home directories -must- be on the same volume as the rest of the OS)
10) Hiberfile.sys always exists, wasting gigs of storage in the root disk even on systems that never had and never will make use of hibernation.
To be fair, I have these same complaints about a lot of Linux distros as well (Especially Ubuntu and Red Hat).