Acabou sendo um problema de permissão.
Mudei no php.ini a opção fastcgi.impersonate para 0 e tentei com diferentes identidades de pool de aplicativos. Funcionou como Sistema Local. Esta é uma conta com mais direitos de usuário do que a conta do Serviço de Rede ou do Serviço Local. No entanto, lembre-se de que executar um pool de aplicativos em uma conta com direitos de usuário aumentados apresenta um alto risco de segurança. Para mais referências sobre as contas e como configurar confira estes artigos:
Configurando Identidade do pool de aplicativos com IIS 6.0 (IIS 6.0) Contas de usuário de serviço Segurança do serviço e direitos de acesso
Decidi defini-lo de volta para o Network Service e baixei o Process Monitor *. Em seguida, usei-o para monitorar o processo w3wp, que me mostrou que isso estava obtendo acesso negado em uma chave de registro onde o caminho para sqlncli.dll está armazenado.
HKLM\Software\ODBC\ODBCINST.INI\SQL Native Client 10.0
Então eu abri o RegEdit e localizei essa chave
Cliquei com o botão direito do mouse -> Permissões e adicionei o Serviço de rede à lista e dei permissões de leitura.
Reciclei o pool de aplicativos e agora está funcionando!
Espero que isso ajude!Federico
*Há um artigo passo a passo muito bom sobre como usar o monitor de processo aqui.
http://www.iislogs.com/articles/processmonitorw3wp/