Recently I've been playing around with javascript in browser windows to determine if modal dialogs are possible. The short answer to this is yes they can!
For those who don't know what modal dialog boxes, they are essentially popups that require the attention of the user immediately. Whenever you get a message box in Windows, they are modal dialog boxes. You must do something with the popup before you can resume operation with the application.
Because of the abuse of popup windows by advertisers, most people hate popups while browsing the web. Unfortunately, in some cases, they cannot be avoided. This is especially true when someone wants to create an application that model's a desktop application. Granted a web application is a different environment than a desktop and should be designed accordingly, let's forget that argument for now. 
So how do you do it? Normal dialog popups are easy, you just use the following code:
window.open(url, name, features)
and this works for both IE and Mozilla. Unfortunately creating modal dialog boxes are not as simple and there is no common API to use in both IE and Mozilla. In Internet Explorer, creating a modal dialog box requires you to make this call:
window.showModalDialog(url, arguments, features)
while in Mozilla, you make this call:
window.open(url, name, "modal=yes")
As you can see, they are different calls for different browsers. To make matters worse, the behavior of the popup modal dialog box is also different! In Internet Explorer's case, the modal popup requires the user to explicitly close it before the user can access the parent web page. In Mozilla's case, the modal popup is not "modal", but really just "Always On Top". The user can still switch windows to the parent window to perform operations.
There's different workarounds for the Mozilla case you can do, but in the end, your web application will still need to keep in mind that the parent page could be clicked on even if a modal child dialog box is open.
So how do we consolidate both IE and Mozilla javascript code into a single code block compatible with both browsers? Just do an API check:
function showPopup(page) {
if (window.showModalDialog) {
// IE Modal dialog call
window.showModalDialog(page);
} else {
// Netscape Modal dialog call
windowRef = window.open(page, 'popup', 'modal=yes');
}
}
So what is the lesson learned from this? Incompatability sucks! 