A passenger train smashed into a truck at a level crossing in South Africa on Thursday, killing at least 18 people, injuring 254 and throwing several carriages off the rails.