The "end now or cancel box" at shutdown indicates a program still running that Windows is having trouble closing. This could be any number of things but if it happens every time and you have already closed all the programs you were running, then it's sometning running in the background. The problem is to identify it.
Try cancel then ctl-alt-dlet at this point. This will bring up the task monitor. Is there anything still running under the Applications tab? Alternatively under the Services tab, what is using CPU. If this doesn't point to anything then exit from the applications in your systray one by one (right click and choose exit or close)and try to shutdown after closing each one.
If you find the culprit then you can stop it running every time either using it's own options (right click the systray icon or start the associated application and find something like options/settings or preferences and untick open at startup or somesuch.)
Alternatively you can use MSCONFIG to inhibit processes at startup. Start,run, enter msconfig, ok, startup tab, untick them one by one and test shutdown after each)
Chances are though that you are still not virus free. Make sure your virus checker is up-to-date and rerun it. Download, update and run Adaware and Spybot as well. If it persists, try another virus checker. Many of them have a free scan on their website or a downloadable trial version.