My first real production virtualization deployment was back in mid 2004 I believe, using VMware GSX I think v3.0 at the time(now called VMware server).
The deployment was an emergency decision that followed a failed software upgrade to a cluster of real production servers that was shared by many customers. The upgrade was supposed to add support for a new customer that was launching within the week(they had already started a TV advertising campaign). Every attempt was made to make the real deployment work but there were critical bugs and it had to get rolled back, after staying up all night working on it people started asking what we were going to do next.
One idea(forgot who maybe it was me) was to build a new server with vmware and transfer the QA VM images to it(1 tomcat web server, 1 BEA weblogic app server, 1 win2k SQL/IIS server, the main DB was on Oracle and we used another schema for that cluster on our existing DB) and use it for production, that would be the fastest turnaround to get something working. The expected load was supposed to be really low so we went forward. I spent what felt like 60 of the next 72 hours getting the systems ready and tested over the weekend with some QA help, and we launched on schedule on the following monday.
Why VMs and not real servers? Well we already had the VM images, and we were really short on physical servers, at least good ones anyways. Back then building a new server from scratch was a fairly painful process, though not as painful as integrating a brand new enviornment. What would usually take weeks of testing we pulled off in a couple of days. I remember one of the tough/last issues to track down was a portion of the application failing due to a missing entry in /etc/hosts (a new portion of functionality that not many were aware of).
The system was slammed with more traffic the first day then we were expecting for the entire month, so it really had trouble keeping up, we built a couple more web servers to help handle the load as fast as we could and it stayed in that configuration for some time, several months at least. Running (tens of?) thousands of $ worth of e-commerce traffic/day over a single dual processor system running GSX on top of 32-bit linux with 16GB of ram and internal disks.
Really saved the company's ass. And it laid the groundwork for future clusters as well - they moved away(mostly) from the shared model to dedicated clusters for the larger customers so that if one customer's code was bad it could be rolled back and not impact other customers.
So hell yeah it's ready, I still think it requires some intelligence on the part of the people deploying it, you can get really poor results if you do the wrong things(which are by no means obvious). But the same is true for pretty much any complex piece of software.