The costs lie in training, upgrading hardware, and upgrading user applications (including things that are closed source, discontinued or developed in house by people who have left the organization).
Unfortunately you'd get most of these problems in Linux too.
But they've upgraded to another Windows version, not a * nix. Windows has taken backwards compatibility support to plaid (11 if you're a fan of a different movie). I worked in an office with a data analysis tool written using Visual Fortran in the 1990s for Windows 95. Without retargeting it it runs just fine with a single launch flag set for Windows to use the appropriate compatibility mode. The cost of upgrading user applications is really the cost of testing user applications. Moving to * nix wouldn't be upgrading, it'd be rewriting/porting or significant testing with Wine or some other compatibility layer. [1]
[1] As others pointed out, as more applications run on the CLR porting to * nix will become easier as CLR support improves on those platforms. But that also requires a rewrite, you can't take an existing Fortran or VB or C++ project and retarget it without effort.
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).
In my experience running a small business, Linux support was much cheaper than windows support. The Linux professionals seem to charge more but can almost always fix a problem twice as fast as a the support I get from Windows "professionals". I also ended up having less problems with Linux than I did with Windows (after a few initial bumps in the road). I've also talked to quite a few other entrepreneurs and many of them agree that Linux is a fine and much better choice for start-ups simply because you're starting from a clean slate (So there is no legacy code to deal with) and because 90% of small businesses and start-ups consists of a network of 10 or less computers.
Ubuntu is free to install only because your free time has no monetary value. For organizations whose time has monetary value, the cost of an OS license is swamped by the cost of the time it takes to rewrite applications, retrain users, roll out the upgrade, and fix the inevitable breakages.
And like I said above, these costs are present whether you're using Linux or Windows.
(I run ubuntu with xmonad but have never written my own packages)