If you are not sure which (or even if) drivers are the cause of your Windows issues, you can use the built-in SIGVERIF program to locate all non-Windows certified drivers on your system.
If you do have a driver issue, it's likely to be because that particular driver has not been properly tested with XP. SIGVERIF can tell us the various possible culprits.
To run SIGVERIF, boot into safe mode, go to 'start\run' and type 'sigverif'
Click 'start' to begin the scanning process. SIGVERIF will examine the Windows system files for drivers that have not been WHQL certified to work with Windows XP. The list is saved as a text file in c:\windows.
Create a directory on your local drive (C:\ drive or D:\ etc.,) called 'driverbackup' or something similar. Locate any unsigned drivers you wish to test in the 'c:\windows\system32\drivers' directory and cut and paste them to the 'driverbackup directory you just created.
Note that you should not perform this step with video card drivers. Also, note that just because a driver is not certified does not mean that it is faulty or will not work with WindowsXP. This is just a good place to start looking.
Once you have moved the unsigned drivers into the new directory, restart in normal mode. You will get errors noting that 'at least one driver or service failed to start…' but you are looking to see if the problems you were experiencing previously have now gone away. If so, you can reboot in safe mode and move the unsigned drivers back to c:\windows\system32\drivers' one at a time, restarting between copies, until the behaviour manifests itself again and you have found the problem driver.