Acabei usando os dois. Ao redesenhar nosso sistema de construção, eu estava enfrentando um problema complicado. Ou seja, eu não conseguia me livrar do .vcproj (e da família) porque todo mundo estava usando o VS para atualizar os arquivos, as configurações e os projetos do projeto. Portanto, sem um processo enorme de duplicação e propenso a erros, não poderíamos basear nosso sistema de criação em um novo conjunto de arquivos.
Por esse motivo, decidi manter os arquivos 'proj' do VS e usar o MSBuild (eles são arquivos do MSBuild, pelo menos o VS2005 e o VS2008 usam arquivos de projeto do MSBuild). Para todo o resto (configuração personalizada, teste de unidade, embalagem, preparação de documentação ...) usei o NAnt.
Para integração contínua, usei o CruiseControl. Por isso, tínhamos scripts CC que acionavam os trabalhos do NAnt, que para a construção do MSBuild usado.
Uma observação final: o MSBuild NÃO suporta projetos de instalação! Então, você está preso ao ligar para o DevEnv.com ou ao usar o Visual Studio diretamente. Foi o que acabei fazendo, mas desativei o projeto de instalação por padrão de todas as configurações da solução, já que os desenvolvedores normalmente não precisariam compilá-los e, se o fizerem, eles podem selecionar manualmente.