Update: Someone found a way here . It includes IOCTL and is available to drivers and services.
Original answer:
The only way I know with the user is to associate your service with a small user agent process that will be added to HKEY_LOCAL_MACHINE \ CurrentUser \ Run for autorun.
This is a common template in vista and win7, where user interaction is not possible directly from the service:
MyLittleService.exe has no access to the user. But it can communicate through a named pipe using a utility with a tray icon.
MyLittleTrayIcon.exe communicates with the service, and it can also transmit a signal to the user with messages, an audio signal through any method (Windows sound effects are likely to be better than trying to access the PC speaker, which is no longer guaranteed on every PC) and etc., and perhaps even can be used to manage the service (restart it, reload the configuration, etc.).
source share