I also travel abroad 6-8 times per year (4-6 times if you exclude Canada.) The local countries bank and ATMs are far better than using the airport currency exchanges. I myself pretty much stick to ATMs.
In South Africa most places took VISA. AMEX was hit or miss. I usually carry $400 USD worth (in the local currency) cash on hand and use my card everywhere possible (make sure your card company does not charge International fees on each use.) Of the $400 only cary $100 in my pocket (the rest in hotel safe) unless you know you will be using more.
Muggings are common in parts of South Africa. I definitely hit a few sketchy streets here and there at night in Capetown (Johannesburg is supposed to be worse) but I never did have any problems.
If you will be driving look out for the unofficial "parking attendants" wherever you go. They are basically impoverished people who pick a street or parking lot and act as "security" for tips. Even though it is BS just give them a few Rand. IMO it isn't worth the risk of them breaking into your car or allowing someone else to break in.