A windows service which wants to display a user interface has to run under the SYSTEM account. This is a bad idea, because it's a very powerful account and most of the time it has more rights than you ever need, i.e. you would be violating the "Running with least privilege" principle. Furthermore, if such a service displays a window on a user's desktop it opens the possibility of the so-called "window message attack". I strongly recommend reading Keith Brown's "The .NET Developer's Guide to Windows Security". It contains some advice on how to display user interfaces from services, too.

Martin