Is there a way I can do this? Too many times I install an app, only to uninstall it, because it can't be moved to SD.
if your phone is rooted you can use link2sd :
but you'll have to partition your SD card first using mini tool partition wizard
and here's the Tutorial on how to partition your SD card
This Can move immovable and -of course- movable apps more efficiently than app2sd and saves more space because normal moving moves a small part of the app to SD card ,while Link2SD moves a big part of the app(but not all of it(user experience))
If your phone is not rooted:
1.Market apps : you can't know because market downloads apps and installs them instantly.
2.apps which you have their APK you may find out by looking in the manifest.xml file inside the APK in android:installLocation="auto" as @Rafael said.
if you have install.apk file you can open it(eg. by apktool) and in androidManifet.xml file should be sth like android:installLocation="auto" if you cannot find that, app can be only install on device