If you have some unknown or corrupted system files in the dllcache folder, then sfc /scannow is the thing for you. If XP is complaining about some other corrupted system files, sfc /scannow will not help you.
Most of the time when somebody just says "try sfc /scannow" they never say, forget to say, don't know themselves, or leave out the part that says you will probably need your Windows CD. Since most people either have never seen a Windows CD or the one they have does not match their installation, they will usually not get far with that idea.
Of course I just copied my XP SP3 CD to an external drive and told SFC to look there, so I never need a CD (with all the fooling around we do, this saves time),
Then the person with the problem comes back frustrated (almost every time) and says "It keeps asking me for my CD and I don't have one, or I put in my CD and it still keeps asking me!" Notice the repeatable pattern of messages when it comes up. Well, you should have mentioned that little detail in the first place before suggesting it! Then starts the slipstreaming diversion, blah, blah, blah (there is no blah, blah, blah emoticon or I would use it
It is annoying to see someone have a problem, and a well intended helper just says "try running sfc /scannow". It is frustrating because I know what is going to happen next and that is going to be: "It keeps asking me for a CD...". If you reproduce the problem and then run sfc /acannow you will still have the problem. But, in all fairness, I used to suggest it too, which meant I have no idea what the problem is.
For me, I always think that the poster has never see a genuine bootable XP installation CD in their life and can't produce one, so I would never suggest running sfc /scannow in the first place since 99 times out of 100, they will come back and say they have a problem. The other 1% is covered by the "it only looks after the dllcache folder". I used to suggest it though, as sort of a general purpose thing to do - before I knew what I know now.
Then I learned and can demonstrate (as you read) that even if you have an XP installation CD that matches your installation, sfc /scannow will not replace any file in any other folder besides %Systemroot%\system32\dllcache, and that is not where XP gets files it needs to run. Delete or corrupt them all and XP will still run fine.
Since that is not where XP is looking for files when it is running (except Windows File Protection), running sfc /scannow will not solve any problem involving missing or corrupted file in other folders (unless the dllcache folder needs attention), so it is a waste of time even when it does "work".
I started that thread with the Rob Brown reply (you already know that), and if Rob thinks sfc /scannow will replace any files in any other folder than dllcache, we need to talk and he needs to run that example I provided. If he suggests it as "part of a solution", it is a waste of time part of a non solution and he will shortly be hearing back from whoever he suggested to to that there is a new problem.
I cannot recall a time when even running sfc /scannow successfully resolved a problem. It is always: didn't help, no change, same problem, still doesn't work.
You can read my comments there too and see that even if sfc /scannow does run completely, you will still end up having missing or corrupted system files (even the lowly Task Manager) and it won't fix even a simple missing file problem - unless the problem is in the dllcache folder.
Why suggest something that will just be a frustrating waste of time and will not resolve the problem?
I admit that I used to suggest it a lot, then I got tired of it since nobody seems to have a CD and it doesn't update any files XP needs when it is running, so I sat down to figure out for myself what it really does and doesn't do.
Empty or corrupt your dllcache folder and XP will still run just fine. Run sfc /scannow and it will repopulate your dllcache folder, but that is all it will do.
Yes we are off topic and I talk too much, but it makes my skin crawl to see someone trying to use sfc /scannow to solve a problem that sfc /scannow will not solve, and I'm trying to be helpful by expediting problem resolution with reduced message cycles
As always, it is enjoyable to talk to you hamluis