Como o programa é projetado dessa forma, evite tomar medidas que o usuário possa não querer.
Normalmente, uma caixa de diálogo é exibida quando o programa precisa que o usuário guie alguma ação. Fechar um documento não salvo é um excelente exemplo: uma caixa de diálogo oferece salvar as alterações, descartar as alterações ou abortar o fechamento e retornar à edição. O programa se recusa a encerrar intencionalmente sem responder a essa pergunta porque o fechamento forçará ALGUMAS ações a serem tomadas. O programa não pode decidir por conta própria, por exemplo. descartar edição recente ou, ao contrário, sobrescrever a versão correta com digitação de gato no teclado.
Mesmo se considerarmos um diálogo que não está relacionado ao fechamento, geralmente significa que algum processo está em andamento, ele ainda não foi concluído e o usuário deve decidir o caminho a seguir. Não pode ser "simplesmente abortada", porque abortar também é uma ação que o usuário não quis dizer.
Ele também simplifica o design do programa, já que os criadores não precisam criar "uma saída segura" de todas as funções.
Hoje, a maioria dos diálogos não é modal no sentido técnico (o programa continua responsável), mas ainda é mais fácil torná-los modais em um sentido mais amplo do fluxo lógico do programa.