Ich tippe trotzdem auf ein Rechteproblem. Vielleicht haben die Dienste, bei denen es geht, irgendein Flag aktiviert, das die anderen nicht haben, oder umgekehrt (UiAccess oder sonstwas). Hast du auch mal die
UAC komplett deaktiviert? Nur um diese Fehlerquelle auszuschließen. Die
UAC führt nämlich auch manchmal zu komischem Verhalten, das einen ganz schön in die Irre führen kann.
Auch interessant wäre, was passiert, wenn dein Programm (bzw. die entsprechende Routine) ebenfalls als Dienst läuft.