If you're struggling with some ship to pay modules that dont want to work with virtual products - here is the solution for your problem. Module from mypresta.eu offer: ship to pay + virtual products support that allows to combine carriers with payment methods and in addition to this it allows to combine shipping with virtual products too. It is the only one module available at the moment that allows to define such associations! No more problems with "payment modules are not installed" message on last order step during order process.
Below you can find video about this module with informations about configuration and explanation how it works.