A opção 2 geralmente não funciona.
Se um programa armazena todos os seus arquivos em sua própria pasta dentro de C: \ Program Files \ myprog ou qualquer outra coisa, você pode simplesmente mover esta pasta para outro sistema com dependências idênticas ou o que o programa depende (arquitetura, tipo de disco, bibliotecas, número de série ...)
Mas assim que o aplicativo começar a armazenar arquivos de configuração ou bibliotecas de dll na pasta do Windows ou em qualquer outro lugar, é difícil encontrá-los.
Se agora o programa também usa o Registro para armazenar algumas informações, você quase pode esquecê-lo!
Você vê, apenas mover a pasta de um programa funcionou talvez no tempo do DOS (mesmo assim nem sempre), mas quanto mais recente for esse aplicativo, maior a probabilidade de ter alguns arquivos ou informações espalhados em locais diferentes ou depender em informações não tão fáceis de copiar (por exemplo, algumas proteções contra cópias)