Addresses are a big problem. If you pick the country first then go to a page to fill in an address it's easy enough, just make a US address datatype and a Canada address datatype. If you what to switch interfaces without a trip the the server then things are much more complicated. I guess you could include both and javascript the visiblity.
Multifield validation is a problem also. On my current project I do single field automatically and multifield with custom code. This works pretty well but I don't do much multifield validation.