The whole idea of clustering is redundant hardware, I don't see where virtual machines on the same physical box accomplishes this.
Clustering in the MSCS sense means redundant hardware (hosts) and shared storage. You could go futher with a replicated storage design; some applications even provide this capability at the application level (oracle, SLQ, Exchange 2007, Domino, etc). This provides redundancy for the stored data as well. A hybrid solution would be a geographically dispersed cluster, whech is a set of vendor specific replication extentions integrated into MSCS to provide replicated instead of shared storage.
If you're going to go that far, why not do away with clustering altogether and just replicate? Mirror the boot luns as well as the data (your replication tool will need to be application aware and within the MS support boundaries), then in the event of failre power up the dr hosts connected to the replication destination volumes.