regsvr32 MyCOM.dll
вызовет экспортированную функцию DllRegisterServer в dll, что происходит там до dll. Обычно он регистрирует свой CLSID и другую регистрационную информацию в HKEY_LOCAL_MACHINE \ software \ Classes (то же самое, что HKEY_CLASSES_ROOT для операций записи), поэтому регистрация должна быть видимой для каждого пользователя, если только у пользователя нет конфликтующей регистрации в HKEY_CURRENT_USER \ software \ Classes.
Я предполагаю, что регистрация не является проблемой, но ваш COM-объект делает что-то, что препятствует его загрузке для пользователей, не являющихся администраторами (Запрос доступа на запись к ключу в HKEY_LOCAL_MACHINE и т. Д.) Вы можете использовать Process Monitor и найдите ошибки ACCESS_DENIED и посмотрите, дает ли это какие-либо подсказки.
Другой вариант - вручную зарегистрировать объект в HKEY_CURRENT_USER \ software \ Classes для пользователя без прав администратора. Это должно исключить проблемы с регистрацией.