You shouldn't be doing this at all from a service. First, a service by default doesn't have access to the desktop. You can change this in versions of Windows before Vista by checking the "Allow service to interact with desktop" checkbox on the properties dialog for the service, but this is a very, very bad idea.
In Vista, services cannot interact with the desktop at all.
You are making the assumption that there will only ever be one interactive user on the machine at the time, which is not always the case. Because of Terminal Services, you can have more than one user logged into interactive sessions.
What you should do is create a small client program which is launched when the user logs in. This program would interact with the service through some distributed technology (like Remoting, or WCF, I recommend the latter). Based on the communication it receives from the server, that client program can launch dialogs and user interface elements to interact with the user.