Обычно большинство "простых" утилит просто ищет свои DLL, и если не находит их в собственной папке - лезет искать в системные.
Так что я первым делом инсталлирую программу НЕ в папку по умолчанию (например в Temp), затем делаю копию папки совсем в другое место и оттуда её запускаю.
- Если работает - деинсталлирую оригинал. Если всё равно работает - пересылаю папку вообще на другой комп. Если и там продолжает работать - значит она и так портабельна. Если на другом компе другая Windows но программа всё равно работает - это вообще замечательно
- Если не работает из другой папки - значит в Реестре прописываются конкретные пути установки и простыми средствами ничего особенного не решить.
- Если не работает после деинсталляции оригинала, требуя некие DLL - ставлю оригинал обратно и пытаюсь эти DLL запихать из Системных директорий к ней в папку. Если она их всё равно не находит - значит внутри программы прописаны конкретные пути в Системные папки. Просто так это не решить.
- Если не работает на другом компе - значит насрала-таки в Реестре. Там опять думать надо.