Operating Systems: CPU Scheduling
Nice overview.  Windows 1-3 used "non-premptive" or "cooperative" scheduling, which is why any process could hang the system.  That method does have its uses though.  I once wrote a micro kernel for MSP430 that did it that way too.  As long as you can guarantee that a task will complete within a specified time, it's a good lightweight solution.