I find a compose key (see Wikipedia) quite helpful for diacritics, em dashes, &c.—once you get the hang of it, it’s really quite fast and intuitive. One can even add new combinations.
I settled on switching keyboard layouts with Windows+space.
I was more curious about the why than the how in a sense.
However, the workaround I use on Windows is Alt key combinations: I memorized the dozen or so patterns [1] I use the most. For example, `Alt + 0160` for non-breaking space, `Alt + 0150` for en dash, `Alt + 26` (and a few more) for arrows and `Alt + 0133` for ellipsis. It must seem crazy when you're used to the compose key.
I haven't heard of dead keys as a workaround. How does it compare? (Wow, this is getting very far from the original topic…)
[1] An important key to memorizing them is to see them as patterns on the numpad, rather than a sequence of digits.