Msgsrv32 passes messages to many hardware/software components. You first need to isolate the culprit. Start by using ctrl-alt-del before you shut down and close down the apps that are running one at a time (except for explorer and systray). By this I mean, if you have 5 apps running (besides explorer and systray) close down the first one. Then try to shutdown. If you still have the problem, do the above for the next app and so on. It's strictly a trial and error. If you get to a point where youcan shutdown normally then you have the offending app.
If none of the apps are causing the problem then it is a hardware issue. If it's hardware then the first thing to look at is power management. Go into the device manager and disable it (and also in yout system bios). Try the shutdown again.
If the above do not help then post back with more specific information regarding what is running and what other hardware you have connected to your system (ie usb devices, cable modems etc).
I had a similar issue with a laptop and tried everything but to no avail. Finally, I applied the mapped drive patch for Win98 even though the laptop was not on a network. To my surprise, the shutdown problem went away, although this has not worked on other machines with the same problem. You might want to try it.
Regards,
DrBob:>)