Most likely shell.dll is damaged by a worm or virus. Just replace it wih the one from the installation CD or service pack, AFAIK it's not a protected file so you don't have to follow the system protection deactivation routine that's needed for replacing other system files.
Tha manual way should be something like 1. Deleting the old file (should be somewhere at %windir%\System32\Dllcache ) and copying the correct shell.dll to the system directory, 2. removing it from the knownDLL's list in the registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW
Another more automated cleanup which might or might not work is using "HijackThis".
May I safely assume that you are using Norton to protect your system?
That said, shell.dll shouldn't be called for any such file management on 2000 or XP machines (it's just the 16-bit version of shell32.dll which is both protected and required for almost all filemanagement operations), is the system Windblows 9X/ME?
If it's 2000 or XP then it's highly likely that other files are screwed as well. Insert your 2000/XP CD (with the service pack you actually use slipstreamed into it) and run from the shell or the fast command window (left windows key + R )
sfc /scannow
Now follow suit the screen instructions...