How to keep two versions of an app installed?
It can be done, but not simple for the reasons eldarerathis mentioned.
You need apktool. Refer to this guide on how to use it. And this on signing the apk after you're done.

You need to modify the AndroidManifest.xml file. Find the line that looks like this:

manifest package="com.example.app"


and change it to something like:

"com.example.app.foo"


After you're finished, recompile then resign. To restore your data, try the following via adb:

adb rm /data/data/com.example.app.foo
adb push /data/data/com.example.app /data/data/com.example.app.foo


Where com.example.app is the package name of the original and com.example.app.foo is the modified.

There's always a slight chance that the app will break, or depending on the way the app is structured you may receive a dialog every time you change the screen prompting you to choose which app you want to launch, but it's definitely worth a try if you want it badly enough.

Of course, the two apps will not share the same settings and data.