There are many alternative payments systems now, other than bank transfers, which can cost quite a lot.
The decision on how to transfer the money would depend on how they wish to pick it up and use it.
I would present you the following alternatives (probably there are many more, but these are the most tried and tested):
1. Western Union (which has the most branches, both in the US and in South Africa). With Western Union, you deposit the money at your local Western Union branch (google Western Union Branch - city where you live), receive a receipt with a code, communicate the code to your friend, and they can pick up the money at their local branch in about two hours. Western Union also has an online platform http://onlinefx.westernunion.com/
2. An alternative service which works much like Western Union is Moneygram;
3. You could also use PayPal. This means the money is stored with PayPal on the account of the recipient's e-mail address, but then they have to see how they can pick it up in their own country and what are the fees for that. However, if they want to spend it online, then it could be a good option, because they don't have to go through another bank.
I hope this clarifies your options.
Dr. Ioan-Luca Vlad