While trying to undestand why a Delphi DCOM server was properly instantiated while set up to run as "launching user", but hung when run using "this user", I found out - comparing the setup on a machine where it works and one where it doesn't - that if the server exectable name is longer than eight character the server may get registered with a mix of long and short filenames in the registry.
If so, DCOM may not work. The server will be instantiated, but then when trying to access it the usual "Access denied error" is returned. It looks this is a long standing Windows bug (see kb305746) - which still appears using DCOM server compiled with Delphi 2007 running in Windows 2003 SP2.
I am now trying to understand why on one machine it was registered with the long name, and on others it got a short name. Maybe on one tregsrv.exe was used, while on the other the server was self-registered using the /regserver parameters - I didn't test yet.