I use multithreading but only when I really need it:

to work with serial ports
to support waitable timers
to implement socket (and other types of IPC) communications
and so on