Você pode criar uma entrada curinga para * .domínio.com para não precisar criar uma entrada DNS em cada nova conta.
Você também pode adicionar uma ligação IIS curinga para que tudo para um determinado IP seja vinculado a esse site. Que você não precisa adicionar vários cabeçalhos de host em tempo real.
URL Rewrite é uma opção para fazer o que você solicitou. Você pode assistir por {HTTP_HOST} com o padrão de ^ (^.) +. Domain.com $. Isso vai obter everything.domain.com com uma referência de volta de C: 1.
Ou, outra opção é apenas verificar Request.ServerVariables ["HTTP_HOST"] diretamente do MVC. Você tem acesso total ao nome do domínio a partir do código, então você tem muita flexibilidade aqui.