Let's say you want  to 
migrate   a Windows application from one PC to another. Not the  entire hard   drive, not your MP3 collection, but just 
one application.
Maybe for    whatever reason you like the application, a 
lot, and don't want    to fork over money for another license, nor do you want to compromise    and purchase a replacement that does what you need it to, but makes  you   long for some quirky goodness your old app offers.
Utilities    like 
Laplink    PCMover and 
Move Me let you    migrate applications, settings, files and all from one PC directly  (via  
USB    cable) or indirectly (via 
external    hard drive) to another. There's also the excellent 
Acronis    True Image, which enables you to clone your hard drive and   copy  every bit of data. Another possibility is a tool like the freeware   
Application Mover,    which lets you move an installed application along with its files and    registry settings to a new path on the same hard drive, or a new hard    drive entirely.
Of these  utilities, arguably   the first few do the best, since they not only a  working application,   but most if not all data in the source and  migrates it en masse to the   target. If you wish to only transport 
one  app, however, you're   practically out of luck.
You could    try simply copying the application folder, updating registry settings    and all that manually, and it might work, but it's rather hit-or-miss.    What if some crucial file the app needs for a very specific task  wasn't   copied over? What if a very old app has some stupid bug that  didn't   emerge when it lived in an old 
8.3 naming system,    but does once you try to stick it into a folder under "
C:\Program    Files"?
Thankfully, a solution exists,    in the form of a utility included in the 
Symantec    Ghost Solution Suite called 
Client Migration. As 
this    article mentions, one of its features includes the ability to    create 
installation packages for installed applications.
  "Client     Migration     3.0     by     Symantec        migrates     data     and     application     settings to a new        computer.     It     enables     you     to
  create     application     packages     for     the     purpose of    updating     or     installing     applications     on     the     new        computer..."
Being able    to simply migrate a single application can be handy by itself,    but the ability to create an installation package is even better, for    several reasons.
- Portability. If you enjoy a   particular  application, and don't want to give up its usefulness, you   can just  install it on new hardware and enjoy.
 
 
- Licensing.    Rather than being stuck with buying another license for a program you    already bought, you can simply move it to a new system.
 
 
- Comfort. You    love PhotoShop, but in the far future it becomes abandonware and is    eclipsed by DodoShop, yet you just loved PhotoShop's way of  doing   things. Migration capability enables you the comfort of  extending the   usability of this one app that may no longer be  available for purchase,   let alone for download off some random site.
There can,    as with everything in life, be a few pitfalls. 
- If the    app you're migrating has any low-level conversations with your  hardware,   these peculiarities might translate with difficulty, if  at all, to a   new system with updated hardware and firmware. The app  itself might not   function, or worse, might cause your system to crash.
 
 
- If the operating system evolves to the extent that certain    OS-specific resources the application depends on to do it's thing are no    longer present in the current OS, you might need to enable any    compatibility features (e.g. Windows ability to run applications in compatibility    mode), or use something like Microsoft    Virtual PC to emulate the desired operating system environment.
Clearly,    there are advantages and disadvantages in preserving a very useful old    application. At least the Symantec product described above gives you  the   valuable option of being able to breathe new life into an old    application despite upgrades to your hardware and operating system.