Use at your own risk.
Normally, only the Microsoft decoder appears when using vmcd.exe to change decoders. I was trying to get the ATI Decoder to appear, (rather than just directly editing the registry) and found the way that vmcd appears to get its choice of decoders from. Basically, the DirectShow registration of the codec needs a sub key called Capabilities with a dword value ("{374ac4df-7c98-4257-b13d-36087dbee458}"=dword:00000001).
To find the correct codec to modify, download either the x64 (for Vista x64) or the normal Graphedt (for Vista 32). Note that you must use the x64 version for Vista x64. Graphedt is available from Microsoft as part of the windows SDK or as a covenient link
http://www.jtow.net/users/triess/. Run graphedt and either go ctrl->F or choose insert filters. Choose DirectShow and click on the relevant MPEG-2 Decoder. At the bottom of the popup it will show you the Filter Moniker eg. @device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{212690FB-83E5-4526-8FD7-74478B7939CD}.
Now using regedt (in administrators mode), navigate to the filter registration. In the case above it would be: [HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{212690FB-83E5-4526-8FD7-74478B7939CD} where the Instance is the second part of the filter moniker.
Add a key called Capabilities. Add a DWORD value value ("{374ac4df-7c98-4257-b13d-36087dbee458}"=dword:00000001).
The registry export in this case would be
[HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\{212690FB-83E5-4526-8FD7-74478B7939CD}\Capabilities]
"{374ac4df-7c98-4257-b13d-36087dbee458}"=dword:00000001
After doing this, the decoder will appear in vmcd and would be easy to switch to it.
As a test, I enabled the FFDShow filter and it was then used for live TV and the recorded TV.