Sim, você pode criar um script com manipulação direta do registro.
A resposta curta
Copie cada um dos seguintes para .regarquivos (como firefox.reg, chrome.reg, ie.reg) e executá-los quando quiser switch (ou, script com reg.exe).
Para o Firefox:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Para o Chrome:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
Para o IE9:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
A resposta longa
O Windows armazena os registros padrão do protocolo padrão por usuário sob a UrlAssociationschave, encontrados em
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Semelhante às associações de arquivos, pode haver um "Programa Padrão" para links. Esse é um tipo de terminologia de jargão que faz referência à UserChoicechave - também há um registro de shell semelhante a uma associação de arquivos padrão no httpProgId que também pode ser alterado, mas a configuração proximal para navegadores é via Programas Padrão (veja abaixo para um comentário adicional sobre este )
O que estou falando aqui é o que você está alterando quando vai à seção Programas Padrão do Painel de Controle para definir um navegador:

Para configurar isso diretamente no registro, primeiro vamos inspecionar se já está lá. Nesta captura de tela, naveguei para essa chave regedit.exee o Chrome é meu navegador padrão, designado pelo ChromeHTMLvalor ProgId.

A alteração mínima que você precisa fazer para mudar o navegador que se abre quando você clica em um link é alterar o ProgIdvalor sob a UserChoicesubchave em cada protocolo que você deseja alterar (provavelmente httpe httpsserá o mesmo, mas se por algum motivo você quiser criar cada daqueles abertos em navegadores separados, você poderia).
Agora é apenas uma questão de determinar o que usar para o Firefox, IE e qualquer outro navegador para o qual você queira mudar. Se você quiser determinar isso programaticamente, poderá fazê-lo digitando a Capabilitieschave do registro do navegador, encontrada aqui para o Firefox:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet é onde todos os navegadores estão listados e cada um deve ter a estrutura acima.

Você pode ver na inspeção que, se eu quisesse mudar para o Firefox, usaria o FirefoxURLvalor ProgId em UrlAssociations.
(No entanto, se você não quiser procurar assim, há uma dica rápida: basta definir o navegador que você deseja como padrão e atualizar o regedit para ver o que o navegador definiu para o UserChoice!)
Tudo o que precisamos fazer é alterar esse valor-chave para FirefoxURL, e agora os links são abertos no Firefox. Depois de fazer isso, você pode clicar em um link ou verificar no painel de controle se o padrão correto está registrado:

Agora, se você estiver prestando muita atenção, talvez tenha notado algumas falhas com tudo isso:
O IE não possui uma URLAssociationssubchave no registro do navegador StartMenuInternet; portanto, de onde vem o valor ProgId? Resposta: Não sei, pelo menos não sem mais pesquisas. Pode ser codificado ou encontrado em outra chave que ainda não encontrei.
ProgId do Firefox está sob seu URLAssociationssão FirefoxURL, mas quando você clica para registar nas opções no próprio navegador, ele usa FirefoxHTMLcomo o ProgId vez! Por quê? Mais uma vez, eu não sei. Ambos funcionam porque ambos existem e apontam para o Firefox. Talvez seja intencional, mas provavelmente é apenas um bug sem efeito.
O que acontece quando não há UserChoicePrograma Padrão? Resposta: a associação de arquivo "regular" para o protocolo (por exemplo, http) é usada. Isto é encontrado nos locais padrão ProgId assim como associações de arquivo ( HKCU\Software\Classes, HKLM\Software\Classese a vista no HKCR). Acho que pelo menos o Chrome define suas informações lá, mas o Firefox não parece, pelo menos nos meus testes.
Eu recomendo que, se você quiser que isso seja adicionado ao Editor de Programas Padrão, você deve sugerir e fazer uma votação na página de Feedback do UserVoice desse aplicativo . Estou certo de que o autor do aplicativo presta atenção a esse feedback ao decidir como gastar seu tempo de desenvolvimento!