First thing to check is that there are no conflicts or other problems reported in device manager.
If it all looks OK then :
At the Run command, type msconfig
Click on the advanced button & make sure that the 'disable fast shutdowns' option is ticked
If it is, then back on the first page of msconfig, select the 'selective startup' option & untick all the boxes below it.
Reboot windows for this to take effect then try shutting it down again.
If this solves the problem, then go back into msconfig & re-enable the first item (ie config.sys).
Reboot & shutdown again.
If it shutsdown OK, re-enable the next item in the list & so on.
When you find which one is causing the problem, go to the relevant tab in msconfig & deselect each entry in there.
You will then need to enable each entry one at a time (after each reboot) til you find which one is causing the problem.