I have a machine which seems to have a similar issue--quickscans are still
running hours after they started, according to the times recorded.
I haven't had a chance to troubleshoot it yet, though.
Here are some immediate thoughts:
1) Run task manager, if on Vista tell it to look at processes from all
users, sort by cpu time, and see what is hogging the CPU--look down below
Defender to see whether there is some other application which is eating a
lot of cpu time at the same time as the scan.
One possible suspect would be a real-time antivirus--it might be worthwhile
to try disabling real-time scanning by your antivirus during the scan to see
what effect that has.
2) Not all antispyware apps are created equal. Windows Defender is pretty
intensive in its scanning, and a full scan may look at far more files than
some other products--it will be looking inside ZIP and ISO files, for
example. There is an options setting to turn this off which may shorten the
scan time, if you happen to have large numbers of such archive files on your
system. However, that leaves a place for malware to hide on your system.
Have you considered running quickscans instead of full scans? You might
read what Windows Defender's help file recommends--which, as I recall, is a
quickscan daily, following up with a full scan only when something is found,
or there is reason to suspect a problem. The quickscan is designed
specifically to look for active spyware--it isn't a shortened full scan, it
starts with processes in memory and works outward--with the intent of
finding anything actively at work on your machine.
That said, something seems not right on this machine. Have you ever spotted
the scan seeming to hang at any particular file or part of the scan?