By and large, modal interfaces suck big rocks. On the other hand, I can’t think of a better way to handle File Open…, or Print… and this, I think, is because
- they are occasional actions, infrequent and momentous, and
- they are atomic in nature; you either finish specifying all your print options and go through with it, or you cancel the whole show.
Let’s put together a little style-guide. Suggest any use-cases in which a dialog is the preferred presentation and why it is preferred. Can the dialog be non-modal? If it is, how do you mark transactional boundaries, since Cancel ceases to have a clear meaning. Do you use an Apply button, for example?
IMO, modal interfaces should only be used when you HAVE to deal with whatever the dialog is doing or asking before the application can continue. Any other time, if you’re using a dialog, it should be non-modal.