Sawfish on RH should be set up by default so that it's possible to work uninterrupted by windows stealing focus, whether they be new windows or existing windows raised by misbehaved applications (e.g. Mozilla < 0.9.3.) If the top window has focus, new windows and dialogs should appear second in Z-order and next in tab order, but they should _never_ steal focus. (Password entry is good enough reason IMNSHO to never steal window focus.) There might be some other means to signal something important happening -- title bars flashing active/inactive? Who knows. Win2K's interface is a good model for how this should work. [IMHO the current default behavior is a serious bug, but I've labeled this an RFE since I'm sure others will disagree. I couldn't find any combination of options that would produce the behavior I'm asking for ...]
Does win2k work as you described? This is most likely a bug for upstream, I'll forward it there.
Windows 2000 works as described. New windows only take focus if no other window already has focus, and alerts (dialogs, etc.) are signaled by flashing the window titlebar and its button in the task list. I don't know if explicit attempts to steal window focus are allowed, but I haven't ever seen it happen personally. It'd be great if stealing window focus were disallowed altogether, but I might be somewhat jaded from my Mozilla experience. This would involve some panel work to get alert notification working in the taskbar.
If an application moves focus, sadly there is nothing we can do to prevent that (other than fixing the app). There's no way to globally intercept focus moves. But for the most part the behavior you describe could be implemented. This is something that we'd normally do upstream though, not in Red Hat patches.So I'll probably move this bug upstream when I get a chance.
See http://bugzilla.gnome.org/show_bug.cgi?id=73118