In the best-case scenario, the ISO will eventually decide on a currency code through the usual standards process (whatever that is).
It would save a good deal of confusion and programming trouble down the road if we could predict (and possibly influence) today what they will decide.
I doubt very much that UBC or BTC will be the code, because these imply an issuing country whose code is UB (not assigned AFAIK) or BT (Bhutan?).
XBC seems taken:
http://en.wikipedia.org/wiki/European_Unit_of_AccountI would suggest using "BC" as the first two letters, even though Bitcoin is not a country. "BC" appears unused in ISO (though other standards assign it to Botswana). In some ways, Bitcoin is country-like, especially in the open-source structure with "government" by committers, moderators, domain registrants, and big stakeholders generally. And Bitcoin may well have use for more currency codes in the future, so I like flexibility in the third character.
So... BTC will likely never become official in the sense of 100 million satoshis. I don't think we need to make an ISO-compatible code for that unit. I think BCB (Bitcoin bitcoin) is the best bet for the 100-satoshi unit. Alternatives that come to mind: BC1 (first standardized Bitcoin), BCU (UBC switched around or "Bitcoin unit"), BC6 (original BTC times 10^-6), BC2 (10^2 satoshis, or second colloquial meaning of "bitcoin"), XB1 (X conforming to the non-country rule, B for Bitcoin, 1 to avoid collision with old EU codes that used a letter here). (I am not sure ISO would consider including a numeral in the code.)
I don't think we should try to separate the "Bitcoin brand" from the unit expected to be in common use, so like the "old franc and new franc" I expect to call the new thing just a bitcoin, eventually. Whether it should be or will be a millionth or some other fraction of an old bitcoin is another question.