O problema acabou sendo que as permissões no GAC de alguma forma foram quebradas. Para corrigir:
- cancele o registro de
shfusion.dll
com regsvr32 para poder acessarc:\windows\assembly
- redefinir permissões para que o Serviço de Rede possa acessar o GAC
- registre novamente
shfusion.dll
Para uma boa medida, execute também aspnet_regiis.exe -ga "UserAccount"
para corrigir as permissões da metabase do IIS.