|"Also, is it uncommon in XP for regsvr32.exe to be missing from C:\WINDOWS\system32"|
Yes...That file should definitely be there. It's fairly important, so I'm surprised your computer was running fine before now, unless it was recently deleted or your i386 folder was defined in your PATH system variable.
"Does anyone know why the application always call up regsvr32.exe before opening?"
To register a COM component that one of its features requires. The COM component it's registering obviously isn't critical to the entire program, but there's probably some feature you're not using that requires it.
It works like this: The .dll or .ocx file it's trying to register has a function defined in it called DLLRegisterServer. Usually all that function does is create some registry entries. When its filename is passed to regsvr32, it looks for that function and calls it. Nothing too complicated. If the program is smart, it could recover from the failure by just calling that function manually, or manually creating the registry entries.
The application I maintain at work has a similar process...We have a COM component we register on startup, but if the registration fails the program will still run...Just one particular feature that isn't used very often won't work.