At my current job, I had to implement a Scheduling system for our banking clients. The requirement was for it to be pluggable, i.e. it should be able to pickup schedulable items/tasks that their developers or our support team would give it. It had to be secure, and it had to be able to handle long running tasks.
My solution for this was to use Quartz.NET as my Scheduling engine, which I encapsulated inside a windows Service. To access it, my web application would make calls to WCF service hosted inside the Windows Service, which used a UserNamePasswordValidator to prevent unauthorized access to the service. The remaining requirement to meet was that of the schedulable tasks. The solution: MEF.