The expensive part is upgrading the hardware to support Win7, rewriting all the software that aren't compatible with Win7, training the personnel to use Win7 (and all the newly re-written software). Now, imagine if they were actually trying to upgrade to Linux. They'd pay much more to train the personnel, they'd have to re-write almost every single software they have been using. On top of that, they'd still pay for custom support (and Linux support is considerably more expensive than Windows support).