It is difficult to understand how organisations can still persist in using the “all-or-nothing” approach during upgrades/changes to their systems. Phased deployments, and the managed migration of users seems a more sensible approach?
With virtualisation it is simple to spin up a number of VMs and run the two versions in parallel. Then using some traffic management software (you could try ours www.zeus.com) migrate their users from one to the other in a controlled way. If it all starts going horribly wrong, you reverse the process and put everyone back on the old system.