O XP permite apenas 1 login "interativo" de cada vez, seja fisicamente no computador ou remotamente via RDP. No que diz respeito ao "console" e logins remotos, o XP não se importa com o que você está usando, já que qualquer processo que deveria rodar será executado se estiver logado de qualquer forma.
Você está tentando determinar se o usuário está logado ou não, mas o mais importante (eu acho) é se o processo está em execução e você quer estar em execução. Por que não apenas verificar o processo em execução em vez de tentar descobrir se o usuário está logado ou não? E se o processo falhar, mas o usuário ainda estiver conectado?
Observar o processo winlogon.exe não é útil no XP, pois ele é executado independentemente de alguém estar ou não conectado. Um processo típico para procurar é o explorer.exe em execução sob o nome de usuário (embora isso também possa falhar e pode até ser morto sem desconectar o usuário).
Em um sistema Windows, você pode usar o "psloggedon.exe" da sysinternals ( link ) para procurar logins locais no computador com a opção -l - "psloggedon \ computername -l". Eu acho que a razão pela qual você está vendo 2 sessões quando está checando a contagem é que a própria verificação estabelece uma sessão para determinar quantas sessões existem ...
Sua melhor aposta para usar o check_nt no nagios parece ser 1) verificar o processo específico que você precisa executar (esperamos que seja executado o tempo todo) ou 2) verificar se o explorer.exe está sendo executado, pois isso só é executado quando alguém está realmente logado, mas como eu disse não é uma maneira segura de determinar se esse é o caso.
Isenção de responsabilidade! - Eu não uso nagios e só verifiquei o site aqui: link para plugins que podem funcionar para o que você precisa