Esses dois são fáceis de confundir e as pessoas freqüentemente usam os termos de forma intercambiável.
Um diretório virtual é apenas um ponteiro para um local diferente no disco. Aponta para um caminho fixo no disco diferente da pasta principal.
Um aplicativo é um limite entre pastas diferentes. O ASP.NET usa-o para criar uma nova raiz AppDomain (ou raiz do aplicativo). Uma raiz de aplicativo usa uma pasta global.asax, bin e as outras app_ [pastas.].
No IIS6 e no IIS7, se você criar um diretório virtual, ele também não será um aplicativo por padrão. O ASP.NET colocará o mesmo AppDomain como sua pasta pai.
No IIS6, você pode converter um diretório virtual ou uma pasta normal em um aplicativo clicando com o botão direito do mouse - > propriedades e criar.
No IIS7, as opções são nomeadas diferentes, mas são as mesmas em segundo plano. A criação de um diretório virtual permite criar um vdir que ainda faz parte do AppDomain de seus pais, ou seja, não um aplicativo).
A opção "Adicionar aplicativo" cria um diretório virtual e o marca como um aplicativo. (você notará que isso permite que você especifique um caminho).
Você também pode clicar com o botão direito do mouse em uma pasta existente (ou vdir) e em Converter em aplicativo. Essa é uma maneira de criar o limite do aplicativo em uma pasta regular ou virtual existente.