Jak masz dostęp do kodu - sprawa jest prosta w większości przypadków. Musisz zadbać, by aplikacja nie wymagała instalowania czy rejestrowania żadnych plików, albo - tak na przykład robi, z tego co wiem, Portable Firefox, rejestrowała pliki przy odpalaniu programu i odrejestrowała przy wyłączaniu. Drugą ważną sprawą jest, by aplikacja zapisywała ustawienia i wszelkie pliki użytkownika w plikach na napędzie przenośnym, a nie w rejestrze lub folderze użytkownika (bo nie zostaną przeniesione z aplikacją).
Jak nie masz dostępu do kodu, to nie zawsze jest to możliwe. Ogólna idea jest taka, że musisz napisać starter, który przygotuje środowisko (katalogi, biblioteki, etc), odpali aplikację, a po jej zamknięciu zachowa pliki konfiguracyjne i posprząta ewentualny bajzel. Gorzej, jak aplikacja jest niechlujnie napisana i na przykład wymaga kopiowania plików do katalogu Windows'a - przy braku uprawnień może nie dać się programu odpalić.