Different from a hard drive. Ram dosnt have any "structure".
Even if a hard drive logically sprinkles data everywhere data is still virtually sorted for the user.
On the hard drive you could easily copy a programs appdata folder to get a programs ascociated user specific data. This is non runtime however.
To do the same thing on ram. You would either use a software that tracks all data allocated by the program (and where it gets stored ofc). Or force the program to save its data in a specific memory range. This could probably be achieved running it in sandbox or a virtuall machine.
If this is hackish? There is nothing more dangerous than managing a programs memory being something else than the program itself or in some cases the os.
This is why i really would recomend using a virtual machine, to atleast reduce the amount of damage this can do to your system.
Data saved on ram can be dependent on hard drive data, networked data. Time, date and other state.
If you where doing this, also copying hard drive data would be a must.
There are reasons why most programs have save/loading features. What software are you using where these arent enough?
Also note that this in most cases could not be used to bypass softwares free expiration date. This would only be true if the software where required to be continussly run this certain amount of time. Copying application specific hard drive data wich i also recomend you to do, is however a different matter.
There is a linux software made for clusters called SmartSuspend : http://www.jaryba.com/evaluate-smartsuspend
If you where to find other software doing this, there is a huge chance that it would be a virtual machine underneath. I would take a look around to se what i could do to make program specific virtualisation more flexible and automated. There are for example ways of running programs virtually and still displaying them in a regular window. And shortcuts for automatically launching a virtual machine for a program.
There is also no way you could do this "on the whim". As i said before data is sprinkled everywhere and unless you track it from the begining, there is no way you can find wich data is stored by a specific program.