The Update Rollup 1 for Windows 2000 SP4 installation via Windows Update may leave the files msxml3.dll and msxml3r.dll in the System32 directory with 0 bytes length. This may be caused by network problems during on-demand-loading of patches.
Corrupt msxml3 libraries prevent Visual Studio .NET 2003 from starting and cause load failure of various ActiveX controls, including Windows Update (error number 0x800700C1).
The workaround is to copy the msxml3.dll and msxml3r.dll files from the System32DllCache directory into the System32 directory and restart the system.
I would recommend downloading and installing the Update Rollup 1 for Windows 2000 SP4 from http://www.microsoft.com/downloads/details.aspx?familyid=c0a2ca36-1179-431c-80e6-60a494d3823d rather than using Windows Update.
The workaround also seems to fix access violations in Smc.exe (Sygate Security Agent).