There may be some circumstances where upgrading a VB6 application is not feasible, for example it may rely on a control that simply does not work in the target operating system. I came across a couple of articles on MSDN that discussed the ways that virtualisation technologies can be applied to this problem. There are three basic approaches:

  1. Run all, or in a virtual machine. Virtual PC, Virtual Server or Hyper-V in Windows Server 2008 are all possibilities.
  2. Use Terminal Services to give end users access to the application.
  3. Use Microsoft Application Virtualization (formally Softgrid) to virtualize a part of the application.

Check out these links: