Жесть. У system по умолчанию вообще нет подсистемы GUI, потому запустить такую штуку можно лишь через задницу, а именно, пробрасывая все запросы API через локальный сетевой туннель (из-за чего обязательно наличие хотя бы одного сетевого адаптера). Гуглите программу PsExec от Sysinternals. Конечно же программа должна быть чисто на C++/WinApi, дотнеты не пробовал, но вряд ли проканают.
P.S. а сейчас вы как запускаете программу от имени системы? Как сервис чтоли?
P.P.S. в теории, если вы уж в ядро системы залезли, можно "создать" процесс от имени любого юзера (ntkernel - CreateProcess), но у него не будет прав системы. Такого не делал, тут не подскажу