At lunchtime outside South Africa's biggest shopping mall, hungry workmen in hard hats pour out of a building site to buy cheap loaves of bread and jumbo bottles of fizzy drinks.

They are joined by middle-class office workers, forming long queues at fast-food restaurants to stack trays with fried chicken, pizza or local delicacies such as bunny chow — a hollowed out loaf of bread stuffed with steaming curry.

Nearly three quarters of South Africans are overweight and the country ranks third in a list of the world's most obese nations behind the United States and Mexico, according to surveys by GlaxoSmithKline and medical journal The Lancet.