Só para encerrar isso.
Eu escrevi isso em um formato genérico, pois suspeitei que estava lidando com um problema genérico de serviço do Windows.
No entanto, verifica-se que este é um problema com os próprios executáveis do serviço. Parece que a leitura do caminho do sistema e do caminho do usuário é de alguma forma dependente do executável do serviço.
Eu tenho dois serviços do mesmo fornecedor, um deles lê o sistema e o caminho do usuário, enquanto o outro apenas lê o caminho do sistema.