If this is happening with your own DLL, or a third-party component, make sure IUSR_<MACHINE_NAME> has access rights to the DLL. See
KB #198432 for more info.
With IIS 5.0, you might also want to make sure that the application which is using the object is set to LOW under 'Application Protection' in Internet Services Manager.
Some of the causes here could be similar to the ASP 0115 error—see
Article #2171 for more information.
Finally, a shot in the dark would be to change Server.CreateObject to CreateObject. See
Article #2336 for some background on the differences.