Como você adicionou a nota sobre exemplos práticos à sua pergunta, darei alguns exemplos de serviços que escrevi para aplicativos corporativos (você não diz se é um programador de aplicativos corporativos, mas acho que a maioria dos programadores de C # VS2010 é) . Eu acho que você está procurando uma idéia do que os desenvolvedores que não trabalham para a Microsoft podem escrever.
Um serviço de monitor de pulsação que verifica se outros programas ainda estão em execução (isso também pode ter funcionado como uma tarefa agendada, mas foi implementado como um serviço).
Um serviço de gravação de relatório que trabalhava nas filas de solicitações de relatório, executava os relatórios e os enviava para impressoras diferentes, dependendo da impressora ocupada. Isso ajudou a descarregar uma quantidade razoável de trabalho de um aplicativo herdado e permitiu que o relatório em execução fosse compartilhado por várias caixas baratas executando o serviço.
Ele foi implementado como um serviço para que funcionasse continuamente, iniciasse automaticamente em uma reinicialização e pudesse usar a interface de serviços padrão do Windows para iniciar, parar, pausar etc. Além disso, se fosse uma tarefa agendada, seria necessário inicie a obtenção de dados de outros programas ou de uma fonte persistente (uma fila, um arquivo, um banco de dados) em vez de estar disponível para a chamada de outros programas (soquete, canal).
A parte do servidor de um aplicativo cliente / servidor também foi implementada como um serviço para reiniciar em uma reinicialização etc. Havia outro projeto com um .exe que executava o mesmo programa e não como um serviço, para facilitar a depurar em máquinas de desenvolvimento.
Espero que ajude. As outras respostas são melhores respostas gerais, especialmente a ideia de que as tarefas agendadas provavelmente são mais fáceis de escrever e administrar para a maioria dos propósitos agora.