There are Startup, Shutdown, Logon and Logoff scripts on Windows. In this case, you could start your program as a Startup script and it will run as soon as the system finishes booting, but before the logon process starts; perhaps that's what you need? You can manage those scripts in the Group Policy editor.
Also as BigChimp said, desktop interaction is forbidden for services (daemons); it is tolerated in WinXP and earlier, but newer Windows are supposed to strictly enforce that.
@gulyone: there are some very good reason to use services other than those you mentioned, and it has roots in the ways daemons are often used on Unix. Namely, as on Unix systems users are normally unprivileged, the only way they can perform some tasks is to split applications into server part (daemon, running with root privileges) and client part which the user actually runs. (There is another way to deal with it, using suid binaries, but it's considered bad practice). It seems that similar architecture is already often used (also by M$ itself) on Windows to prevent some problems typical for older programs which expected administrator rights.