I deal with this stuff on a daily basis with clients....its getting harder and harder to keep these off the system.
One option to help prevent these things from being installed is to take the User accounts out of the Administrator groups and make them in Restricted User accounts. Doing this restricts those accounts from installation access which helps prevent spyware installations.
The downside to this is then your restricted also from installing programs and other things unless you log in with a admin enabled account OR use the RUN AS option.
Best programs for spyware is whats been suggested already:
LavaSoft Ad-Aware Personal
SpyBot's Search and Destroy
Computer Associates Etrust
Pest Patrol (click products then security under home and office)
I've been told from quite a few of my clients that the
Microsofts Antispyware product works quite well. So a fourth option for people to try if the want.
Best places to start after doing your scans:
Boot into safemode
Start>Run>MSCONFIG> Startup Tab
Don't remove anything once in. Just let it sit in the background for now.
Write down file locations where they are located on the local drive and the Registry.
Usually I have found these programs to reside in the Windows Folder, Windows/System32 Folder, Program Files, Program Files/Common Folder.
Also write down the actual name and extension of the file and try searching the computer for them. Be sure to goto Folder Options and Uncheck the hide system folders and such. I have found many adware/malware hide themselves.
Next is to try and clean out the Registry.
Start > Run > Regedit or Regedt32
**BE SURE TO BACKUP YOUR REGISTRY BEFORE MAKING ANY MODIFICATIONS.
Export > Export Range set to ALL > Typically I type BackupRegisty > Save
Registry Locations typically are here:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run AND RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run AND RunOnce
Also if you get a filename and extension..do a search thru the registry and see if there are any pointers leading to other files. Alot of times you can delete these things but they reappear because another file is doing a check and balance to see if its there or a registry entry is missing and then put them back. Those are the annoying ones by far.
Once you get to here and clean everything you can find..cancel MSCONFIG and open it again.
START > RUN > MSCONFIG > Startup Tab
See if all the Startup Options are cleared out except for what your system/programs need.
Reboot the system and check MSCONFIG and see if anythign new puts it self back in. May want to double check the 4 registry locations too.
May want to goto your Internet Properties and goto Security and be sure all your settings are set to DEFAULT. Spyware alot of times will adjust these settings so they can get in easier. They can also adjust your home page so be sure that set correctly.
There are a couple registry tweaks that can be added to a system so these settings can never be changed.....so might take a look at that also. Never done them myself yet....

Not everybody will want to go this indepth in search of these damn pests. It is very time consuming. If the spyware is bad enough....wipe the system will be the best way to rid them from your and reload and better prepare your system next time around!