Re: Damage is done
"...because their critical, irreplaceable, custom application was built exclusively for Windows..."
Every day in my email I get at least a dozen messages from programmers and developers in places like India, China, Vietnam and so on, offering application-development services, often for rates ranging between $2 and $7 an hour. Some of them are dodgy, others are certainly competent. Quite a few are uni students doing their CS theses and looking for a real-world project to cut their teeth on, and these lads (and the occasional lady!) often do a very passable job.
At those prices, I would consider it feasible for a custom-application-locked business to outsource a testbed to one of these guys, if they're willing to take the risk of outsourcing to an unkown developing-country programmer over paying more for a local developer (a fair bit of our own business comes as a result of other companies not wanting to take that risk, so I'm hardly in a position to bitch!) Such a business wouldn't have to blow their custom app in one hit, they could develop a testbed and start doing some of their smaller, simpler jobs on it.
This is exactly what we did: we started with just one Linux machine in my office until I could get my head around it all, and work up a changeover plan and staff retraining program (my experience as a college lecturer stood me well there.) Then we transitioned our staff one application at a time (e.g. LibreOffice Writer instead of MS Word, LO Calc instead of Excel, etc) then dropped Linux on them as soon as they were comfortable using the open source software.
During the transition we ironed out any hitches as we went. End result: Our graphic/layout designers refused outright to move off Windows 7 and their beloved Adobe-ware; so what we did with them was to airgap the design room from the Internet and told them if they needed Internet access to use the Linux machine in there, as well as the fact that there would be no more Adobe upgrades (we're still using the pre-CC versions anyway since I long ago convinced the directors that going cloud was a really bad idea.) There was some grumbling, but that was the line that got drawn. Everyone else - sales reps, management, front office, accounts - all made the switch with very little fuss.
Granted, we're not that big, so I don't know how well this approach would work in a corporate environment, if at all. But I'm sure any locked-in SME could work up a similar solution - outsource, test, transition, rinse and repeat. If they have an app that requires an old version of Windows to run they should really look at airgapping those machines from the internet anyway, otherwise that's a time bomb waiting to blow up in their faces, as someone else commented.
The key is not to blast it all through in one hit, I think the best method is to transition piecemeal. You still have problems, but in a piecemeal scenario they tend to small enough to be readily resolvable, and this allows you not only to build a more robust replacement but to spread the costs over a longer period as well.