> If you don't have protected mode, can't any program just rewrite the interrupt handler?
Yes? It's still possible to make it safe if you ensure that all programs are written in a memory safe language. Aside from throwing out a ton of existing code it's not as bad as it sounds. The Birth and Death of JavaScript touches on it towards the end.
https://www.destroyallsoftware.com/talks/the-birth-and-death...