In one South African holiday you can stand in a desert, climb a mountain and relax on a sandy beach backed by tropical forest.