Казалось бы в чём разница, оба слова обозначают человека сидящего за рулём автомобиля, именно автомобиля, а не транспортного средства. За рулём транспортного средства может быть и тракторист, и велосипедист и экскаваторщик при движении по дорогам, эти виды тоже относятся к транспортным средствам.
И так за рулём автомобиля может быть либо шофёр либо водитель, не важно какой это автомобиль грузовой или легковой или специальный.
С начало разберём что обозначают слова. Слово " шофёр" пришло из французского и означает, если переводить по смыслу русского языка "кочегар" оно и понятно если помнить что первые автомобили были паровыми машинами. Слово " водитель" от слова "водить" подразумевает водить, управлять, направлять, т.е другими словами держать направление,направлять в сторону, удерживать на дороге.
Со словами всё понятно, теперь по существу, шофёр это профессия, водителем же может быть как профессиональный шофёр так и человек управляющий личным автомобилем. Казалось бы нет разницы, как шофёр может управлять скажем грузовиком "газель" так и водитель имеет право управлять этим же грузовиком.
И так мы подошли к основному отличию, шофёр может как водить автомобиль, так и самостоятельно отремонтировать своего кормильца, по крайней мере раньше так учили. Водителю же как лётчику нужен механик.
Если брать разрешённые категории в водительском удостоверении, то они лишь дают право на управление теми или иными видами транспортных средств.
Что интересно на документе называемом "права" написано "водительское удостоверение" а при приёме на работу в трудовой книжке запишут "шофёр" если человек профессионал. Хотя сейчас могло всё изменится.