For the most part, officially you can install programs on either the internal memory or on an SD card. But in practice you will want to choose where you will install them. Programs running from internal memory will run faster, but there is only so much internal memory available. The SD card has the advantage of a huge amount of space, but programs will take longer to load. Here are the guidlines that I use to decide where to install a program:
1) If it is a program or utility that is going to used on the Today screen, a system utility (i.e. memory management, file explorer, email client, internet browser, ect..), or a program that I know will use on a daily or regular basis I will install it in internal memory.
2) If it is something like a game, needs a huge amount of space, something that I know I will not use on regular basis, etc... I will install it on my SD card.
3) There a also programs that you can install the program in internal memory and then save the data it uses on an SD card, i.e. a GPS program in internal memory and the maps on the SD card or an email client in internal memory while setting it save all emails and attachments on my SD card.
4) If is something that has a high amount of personal information, i.e. something like Splash ID, I will install it in internal memory because I lose my SD card, but it is harder to loose just my internal memory.
I hope this helps.