Embora a maioria dos navegadores suporte a substituição, tenha cuidado com o que você está fazendo com ele.
Como a caixa de alerta padrão bloqueia o encadeamento de execução, algumas bibliotecas que dependem desse comportamento podem não funcionar mais (na melhor das hipóteses).
Você deve ser um bom cidadão e evitar tocar na API nativa. Se o fizer, você pode dividir as coisas ao usar código de terceiros.
No entanto, se você deseja redefinir o comportamento do alerta em um contexto específico, você pode anexá-lo a uma função anônima, como esta:
/* new funky alert */
function myFunkyAlert(msg) {
/* here goes your funky alert implementation */
alert("Look ma!\n" + msg);
}
(function(alert) { // anonymous function redefining the "alert"
/* sample code */
alert("Hello World!");
})(myFunkyAlert);