In each case you'll need some information from the card manufacturer on how to load the card. Some manufacturers, like Schlumberger, provide this information with sample programs, others just list the protocol without samples, and others do not even make it available. Eventually Sun and OpenPlatform will resolve this issue by providing converters and security to ensure that cards are loaded easily and safely with trusted programs. We're concentrating here on the process of putting the program onto the card. It moves every datum from the source to the destination.
Smart cards require the same, in addition to wanting the data to be trusted and verified.
All sorts of business issues come into play here, given the widespread functionality of the cards. Java Cards can support multiple applications, however, this isn't quite like putting a file on your disk drive. If you read your credit card agreement, you'll see that you don't own the card. Which means legally you may not be entitled to put more apps on your Java Card without permission. Sun and Visa are busy working on this in the form of a standard for loading Java Card applets, as described briefly in the Java Card 2.1 Specification and the OpenPlatform Standard from Visa.