Como agregó la nota sobre ejemplos prácticos a su pregunta, le daré algunos ejemplos de servicios que he escrito para aplicaciones empresariales (no dice si es un programador de aplicaciones empresariales, pero supongo que la mayoría de los programadores de C # VS2010 lo son) . Creo que está buscando una idea de lo que los desarrolladores que no trabajan para Microsoft podrían escribir.
Un servicio de monitoreo de latidos que verificó si otros programas todavía se estaban ejecutando (esto podría haber funcionado también como una tarea programada, pero se implementó como un servicio).
Un servicio de redacción de informes que trabajó a través de colas de solicitudes de informes, ejecutó los informes y los envió a diferentes impresoras dependiendo de qué impresora estaba ocupada. Esto ayudó a descargar una buena cantidad de trabajo de una aplicación heredada y permitió que el informe en ejecución fuera compartido por varias cajas baratas que ejecutaban el servicio.
Se implementó como un servicio para que se ejecute continuamente, se inicie automáticamente al reiniciar y pueda usar la interfaz estándar de servicios de Windows para iniciar, detener, pausar, etc. Además, si fuera una tarea programada, necesitaría inicie la obtención de datos de otros programas o de una fuente persistente (una cola, un archivo, una base de datos) en lugar de estar disponible para que otros programas llamen (socket, pipe).
La parte del servidor de esa aplicación cliente / servidor también se implementó como un servicio para que se reiniciara al reiniciar, etc. Hubo otro proyecto con un .exe que ejecutó el mismo programa no como un servicio, para que sea más fácil depurar en máquinas de desarrollo.
Espero que eso ayude. Sin embargo, las otras respuestas son mejores respuestas generales, especialmente la idea de que las tareas programadas son probablemente más fáciles de escribir y administrar para la mayoría de los propósitos ahora.