Вместо запуска Explorer.exe при входе в систему вы можете запустить собственное приложение. Это простая настройка в политике локального компьютера, чтобы изменить это.
После того, как пользователь закончит работу с вашим приложением, вы можете запустить explorer.exe или изменить настройки по умолчанию.
Вот небольшой урок, как это сделать.
Кстати: я не использую это ни на одном компьютере, но в профиле (Terminal Services) всех моих пользователей я изменяю это, чтобы запускать собственное приложение при входе в систему. Это обычное .Net winforms приложение, изначально не предназначенное для запуска в качестве оболочки.