First off, you will not be able to impersonate built-in accounts like 'Network Service' or 'Local Service' unless you are running under the 'Local Service' account, which as far as I know can only by done be the OS.
The following post provides a possible solution to the point above (I did not try it, just googled it before I started writting all this my self), but it looks reasonable.
http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html
Once are running under the 'Local Service' account, you simply need to use LogonUser (also shown in the link above) to Logon using the account name of the well known SID and then impersonate the token.
I see the link above runs 'CMD.EXE' as a service which can is allowed to interact with the desktop, note that the 'interact with desktop' functionality is being deprecated.