So, I read through the 64 newsgroup postings on this specific error. There really wasn't a sure-fire fix for this.
The consensus was that some installed program replaced SHELL32.DLL with its own version, and other apps that need this Windows system file are now not able to use it. It is the wrong version.
So, the first thing to try is to uninstall whatever you installed before the file broke! Was it an IE upgrade? Uninstall it.
Also, how bad is your problem? Can you install/uninstall anything? If you can install programs, then run the Service Pack 6a install.
If you can't install due to this problem (several postings mentioned this), then things get drastic. You will need to replace SHELL32.DLL with a copy from another system (or extracted from a SP6a), but you need to know what version of the file you need. So, if you have another system that is also running NT with the same SP level and similar programs (like the same version of IE), you could copy the file from that system, put it on a floppy, go to the broken system, and try to replace the current invalid copy with this one.
But, you will probably get the error how you can't change a file that is in use.
If that's the case, read Technet article Q228930 on the INUSE.EXE app, that is used to replace files that are locked:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q228930
(please remove any spaces)
hope this helps