Has this only recently started? If so, try System Restore.
Or this may cure it. It is actually to solve SLOW shutdown problems, but it might help:
1- Start/Run and type Regedit
2- Navigate to HKEY_LOCAL_MACHINE/SYSTEM/CURRENT CONTROL SET/CONTROL
3- Click on “Control”
4- Select “Wait to kill service timeout”
5- Right click and select “Modify”
6- Set to a lower value than 2000
7- A setting of 200 will be sufficient
Or try a repair of Windows:
Sometimes the system files (those required to run Windows properly) can become corrupted. Here's how to run a check on your system files:
• Click Start; Run.
• In the Run box, type cmd.exe to open the command prompt window.
• At the prompt, type sfc.exe /scannow
• Press ENTER. If Windows finds problems with the system files, you will be prompted to insert your Windows XP installation CD to restore the files.
If no problems are found and the scan finishes, type exit and press ENTER.