I have often thought about trying to figure out whatever Win32 API is responsible for focus stealing and neuter it down to something akin to
void steal_focus_when_user_is_least_expecting() {
// stub, much better :)
}
It is the single most frustrating desktop computing experience.