É o novo recurso de transformação Web.config do Visual Studio 2010. Mais informações aqui .
Editar:
Esses arquivos são usados para especificar configurações específicas de depuração e liberação, para que você não atravesse o web.config principal?
Não está limitado a três arquivos, você pode (em teoria) ter tantos arquivos quantos ambientes. O Web.config de "nível superior" fornece um modelo de sua configuração da web. Os arquivos sob ele fornecem valores de substituição específicos para aquele ambiente (por exemplo, se você tiver strings de conexão diferentes para local / estágio / teste / qualquer coisa).
Faz sentido colocar uma string de conexão no arquivo web.config raiz se eu tiver um local e remoto no debug e liberar web.configs respectivamente.
Só faria sentido se não fosse mudar entre os ambientes. Parece que no seu caso sim, no seu caso não, não faria sentido deixá-lo no Web.config.