They're in random places. Polokwane is close to the northern border and Nelspruit is by the Kruger Park. Not exactly bustling city centres. Rustenburg isn't too far out of Johannesburg, so that's why it tends to be full. And a lot of the really low-key games are being played there too, so people aren't really making an effort to go watch them there.
But the major cities (Cape Town, Durban and Johannesburg) are all sold out. Bloemfontein and PE are almost full.
EDIT: The games are dull for numerous reasons, but as Podolski and others have proved, if you hit that ball properly, it flies.
EDIT 2: Apparently North Korea asked China to recruit 2 000 fans to go out to South Africa and support North Korea. Brilliant.