My trouble with MS is the lack of backwards compatibility. MS says gotta get rid of old technology and embrace the new 'better' stuff. Better is subjective. I need reliability, stability, continuity etc. For a business it takes years to get a stable environment with software and hardware configurations. As soon as everything is running smooth we're forced to scrap much of it and start over. It's especially true with regards to custom in house written software which is required. That software is no longer able to run on new PC's and years must be spent rewriting everything from the ground up. High end off the shelf software must also be upgraded. CAD software for instance that can be $5000 a seat get costly with little to no benefit for making that expense. Only to get back where we already were.
Stability and backwards compatibility is essential. I can't achieve that under Windows. Linux is a possibility. We have several Unix programs that could be recompiled and run under Linux without too much effort.