La opción 2 generalmente no funcionará.
Si un programa almacena todos sus archivos en su propia carpeta dentro de C: \ Archivos de programa \ myprog o lo que sea, simplemente puede mover esta carpeta a otro sistema con dependencias idénticas o de lo que dependa el programa (arquitectura, tipo de disco duro, bibliotecas, número de serie ...)
Pero tan pronto como la aplicación comienza a almacenar archivos de configuración o bibliotecas dll en la carpeta de Windows o en cualquier otro lugar, es difícil encontrarlos.
Si ahora el programa también usa el Registro para almacenar información, ¡casi puede olvidarlo!
Verá, solo mover la carpeta de un programa funcionó quizás en el tiempo de DOS (incluso entonces no siempre), pero cuanto más nueva es una aplicación de este tipo, más probable es que tenga algunos archivos o información distribuidos en diferentes ubicaciones o dependa de no información tan fácil de copiar (por ejemplo, algunas protecciones de copia)