For Windows I once created such a layout which a few friends also started using, with the right Alt (AltGr) key acting as compose combo for characters in some European languages - I could dig it up for you if you're interested. On Unix with X11 that's easy enough to set up (just map the Compose key to something you don't normally use for other things, such as the right Menu key on PC104 keyboards, the Windows keys, right Alt, Scroll Lock, or whatever, and any Roman xmodmap or Xkb layout will work with it). And it's fully compatible with English layout, same layout works for all (or most Vietnamese might be a bit difficult) languages based on Latin/Roman characters, and most sequences are rather intuitive so you don't need to remember much ( for « and so on). not every second letter is accented), or when occasionally typing a foreign word, it's fast enough.
In languages like German where these are not too abundant (i.e. I however dislike the Swiss and German layouts (or in general having to get used to yet another special layout), and rather avoid switching (as I already have two other non-Latin-based layouts to juggle among every once in a while), so I prefer to use the standard English QWERTY layout also when typing in other Latin script based languages, and use Compose sequences/combos for the special characters (accents and the like) - so for instance, an O-Umlaut ("Ö"), is typed as Compose+"+U, an Esszett ("ß") is typed as Compose+S+S. You can do that in pretty much any environment from the last two decades, and you don't need to physically change keyboards (unless you insist on markings on the keys).
One possibility is adding a German keyboard layout, and switching to that when you need it. What operating system / environment are you using?