It will probably be an issue under your background services, check run > services.msc. Drivers like Nvidia Service Helper, etc, sometimes can hang on some systems and need to be removed, fixed, updated or re-installed.
Seems like your already tried it, but close off the background programs on your task manager before shutting down to see if one of them is the issue.
Disable power management, it's can screw up with some motherboards, your BIOS may have one setting and stupid windows has another causing a lock up (duel sleep mode they don't wake from). Go to the Control Panel, click on “Performance and Maintenance,” and choose Power Options. Set them to 'Always On' for testing. Also disable any screen savers, these can cause issues with hanging programs too. Simply switching the screen off and Windows + L to lock if you wish.
Power settings on some devices have been known to fail on the shutdown. Software or the driver tell the device to shutdown first and waits, but it never completes the task. If you have a printer, scanner, or ipod attached, etc, you might want to disconnect it for testing.
Next time you need to force shutdown, just click Start-->Run and type "shutdown -f -s -t 0" (without the quotes - the last character is a zero) and hit Enter. Your PC will shutdown immediately. It's a bit safer than the power button.
To speed up the 'waiting time' for your shutdown:
Start Regedit.
Navigate to HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control.
Click on the "Control" Folder.
Select "WaitToKillServiceTimeout"
Right click on it and select Modify.
Set it to a value lower than 2000, say 1000 as a test.
You should give it at least some time to save work.
Highly recommend you get Service Pack 3 for WinXP, it's much more stable, secure, faster and might also fix your windows files causing the shutdown issue.
Microsoft Troubleshooting:
http://support.microsoft.com/kb/308029/en-us