Windows XP SP3; ZoneAlarm Version 10.0.240.000
I have had a lot of problems with vsmon hogging the cpu -as have others -when downloading a file. This made the computer unusable for anything else while downloading.
I found a solution suggesting adding W3SVC to the DependOnService entry in the registry but this did not seem to provide the cure on its own. The reasons was there was no vsmon entry in my currentcontrolset, although there was in ControlSet001 (HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ vsmon). This seemed strange as the CurrentControlSet applied to ControlSet003. (HKEY_LOCAL_MACHINE\SYSTEM\Select)
So I tried exporting, via regedit, the vsmon entry from ControlSet001; opened the exported file up and changed the references from ControlSet001 to ControlSet003 and imported. I now had a vsmon entry in my CurrentControlSet. I added W3SVC to the DependOnService entry in the new entry and rebooted. All has been fine since.
****A word of warning****: Playing with Regedit can be deadly; make sure you have a backup and that know what you are doing.
I hope that this is of use to others. (-Or that someone will tell me if I should not have made this change!)