Whenever it is possible I prefer to use "portable" versions of applications instead of installing them ordinary way. I put them on drive D:
and they store all the data inside their directories and don't rely on system registry/directories. As the result I get the most of applications I use safe in case of the system failure/reinstallation: no need to reinstall and reconfigure the apps, no need to restore data.
But there is a problem when using this approach in Windows 7: many portable applications (at least those of portableapps.com) consist of a launcher .exe file separate from the application .exe itself and these 2 are separate applications from the system point of view. As the result a second icon emerges on the taskbar if I use a pinned launcher button to launch (and if I pin that second button then it just launches the application in non-portable mode).
The same problem applies to any application which uses a separate loader to start to separate start-up-time and run-time code.
So the question is how to teach a Windows 7 taskbar to recognize a sub-launched process as the same application and put it into the same button.
FirefoxPortable.exe
to the taskbar, click the second button and see new Firefox button created. Pin the second button, close Firefox, wait a minute, click the second button and see Firefox launched in non-portable mode.