Batch method that would work in both 9x and NT beyond my skills for sure. Problem of course is that you have no file list of only the files that are newer using xcopy method. If you had that then you could prepend unreg and reg strings to two copies of the same file list and run them as pre and post batch files.
Unregistering in your case would only apply to shared dlls and/or files currently in use? I ask because using an .inf file to do this update would allow for current file version testing and automatic registering of same only IF that file was copied over. It also does temporary renaming of files in use and delayed registering after temp file overwrites old file at next boot up. Most dll files are NOT self registering so some time saved by only doing the ones that ARE? Dependencey Walker will show which are and which do not even have a self register entry point.
With so many files to update and so often on so many machines maybe you need to look into inf files to make life a tad bit easier?
http://snoopy81.ifrance.com/snoopy81/download.htm
http://msdn.microsoft.com/library/en-us/install/hh/install/inf-format_7soi.asp
http://www.microsoft.com/windows/ieak/techinfo/deploy/60/en/infdef.htm
http://msdn.microsoft.com/library/en-us/setupapi/setup/authoring_an_inf_file.asp
You could further roll up the inf file and the update files into an Iexpress executable package. Once you have the template down all you would need to do is replace the files themselves and roll another package for your weekly update and distribute it. Iexpress.exe is inside any recent IEAK package so you may have it already and not know of it?
http://www.microsoft.com/windows/ieak/
Networking not done here but it seems to me that if the inf file could be invoked on the various workstations while referencing the network location as the source of the files this is all you would really need other than to update the files on the network location?
Hope something I've offered helps.