Esse é um design abaixo do ideal para um aplicativo do IIS.
Aplicativos de área de trabalho são executados de forma interativa.
Os aplicativos do IIS são executados como um serviço - sem exibir uma interface do usuário para o usuário.
Você está essencialmente usando o IIS para iniciar algumas tarefas de processamento em segundo plano (porque não há nenhuma GUI visível para você) que ache que elas são tarefas de processamento de primeiro plano.
O "tipo de astúcia" que você mencionou em seus comentários é exatamente por que você pode ter problemas ao fazer isso. Apenas para escolher uma frase:
"Este aplicativo então imprime em um arquivo PDF usando o driver de impressora do PDFCreator e o salva na área de trabalho."
No caso de um usuário do AppPool do IIS, onde está a área de trabalho?
Você pode tentar usar uma conta de usuário específica (não uma conta virtual do App Pool do AppPool \ ThisIsAVirtualAccount ) que lhe atribui um perfil específico e definir Carregar perfil de usuário como True (propriedades do pool de aplicativos) para garantir que as pastas de perfil (e o driver de impressora ) estejam disponíveis para esse usuário.
Mas isso é tudo o que vai acontecer em algum lugar no fundo em uma caixa do IIS, e se o aplicativo decidir abrir um diálogo de erro, é isso, ele está quebrado até que a caixa seja reiniciada. Como eu disse, abaixo do ideal.