Servidores separados (físicos ou virtuais) para diferentes funções é uma EXCELENTE ideia.
Se um servidor morre ou tem problemas, isso afeta apenas esse serviço. Se eles estão todos no mesmo servidor, algo que trava o servidor tira tudo.
Isso também significa que você pode agendar atualizações com mais facilidade, já que fazer as atualizações afeta apenas um serviço por vez. E quando você decide atualizar o sistema operacional um dia, você não precisa se preocupar com a quebra de vários serviços diferentes. Você pode até encontrar uma situação em que um site precisa de uma versão antiga do PHP ou MySQL para funcionar corretamente, mas seus serviços de email precisam de uma versão mais recente. Servidores separados cobrem lá.
Também torna a restauração de backups muito mais fácil. Se o email e os sites estiverem em um servidor, você terá que se preocupar em restaurar os dados para os dois ao mesmo tempo. E, possivelmente, perdendo algumas das mais novas mudanças de e-mail e site que ainda não foram submetidas a backup. Se eles são separados, você só precisa se preocupar com um daqueles sendo revertidos. Especialmente útil se for o servidor da Web que você está restaurando - reaplicar algumas alterações no site não é tão ruim. Ter que excluir as últimas 23 horas de e-mails porque o site quebrou é.
A desvantagem é que agora você tem mais servidores para gerenciar e para pagar. Mas na maioria dos casos, eliminar o risco de um problema tirar tudo vale a pena.