Preemptive multitasking is overrated. (In particular, it seems to me that graphical applications may behave better when they cooperate. I think that a desktop OS should accommodate both kinds.)
There are things where you can't do without preemptive multitasking. I remember that under Windows 3.1, I couldn't download a file over zmodem at 2400 baud while doing anything else, whether the terminal application was DOS or Win16. With the same DOS app, on the same computer, under OS/2, I could do pretty much as I liked while downloading.
Cooperative multitasking has gotten a lot better these days, though, in the form of coroutines and async io.