MessageBox - то как раз "пробивает" рабочий стол, ставлю флаг MB_SERVICE_NOTIFICATION и никаких проблем.
А мне нужно сделать именно диалог до, или во время появления окна выполнения логина.
Сама идея встраивания каких либо диалоговых окон в сервис не правельна (так не должно быть). Сервис не имеет как токового доступа к рабочему столу (и это ему и не нужно). Но при регистрации сервиса в системе Ты можешь указать, чтобы он взаимодействовал с текушим рабочим столом (не помню какой флаг надо указывать). Но это все глупости и так не должно быть, так как сервис крутиться с системной учетной записью, а у нее нет рабочего стола. Да и вообще пользователь не должен знать, что в системе запускаются какие то дополнительные сервисы (если он не системный администратор).
Его конфигурация должна проходить при его установке. А также можно дополнительно написать утилиту, которая будет проводить его конфигурацию (кстати так и делают), а вот в ней ты можеш использовать уже какие хочешь диалоговые окна. Ведь эта утилита будет запускаться уже от имени конкретного пользователя и у нее будет свой рабочий стол (короче все как положенно). И уже она может например работать в фоновом режиме и отображать состояние сервиса, скажем с системном трее (опять повторюсь, так и делают).
Для фиксирования каких либо событий он должен писать отчеты в системные журналы. Или в свой собственный файл логов.