
Ma réponse était prête depuis une heure, mais mon ordi avait des problèmes de connexion. Les indications de Damiro viennent compléter :
Bien qu'à l'origine, les deux expressions fussent totalement synonymes, et qu'elles désignassent la voie proprement dite (les rails), leur usage actuel est un peu différent.
Chemin de fer peut être employé de façon métonymique, et en fait,
il est presque toujours employé de façon métonymiques (EDIT : le TLF marque bien "vieilli" s'agissant de la définition A, qui est en fait le sens propre).
Le chemin de fer (ou au pluriel
Les chemins de fer) désigne généralement l'ensemble de l'exploitation ferroviaire. Quand on parle des chemins de fer d'un pays, c'est en fait de l'ensemble de son système ferroviaire que l'on parle : les voies ferrées, les machines, l'exploitation, les trains, les personnels de bord ou de station, les gares, les horaires, les services à la clientèles, le fret, etc.
Alors que
la voie ferrée est uniquement matériel, l'expression désigne uniquement les rails, le balast, les aiguillages, etc.
Ainsi, on ne dira pas "derrière la maison de mon oncle, il y a un chemin de fer", mais "derrière la maison de mon oncle, il y a une voie ferrée" ou même "derrière la maison de mon oncle, il y a une
voie de chemin de fer" (expression qui peut paraître pléonastique, mais comme je l'ai dit "chemin de fer" est désormais une locution).
A l'inverse, la SNCF est la Société Nationale des Chemins de fer Français, mais elle s'occupe de toute l'exploitation matérielle et commerciale du réseau ferroviaire, et non pas seulement des voies...

D'ailleurs elle ne s'occupe même plus des voies ! C'est désormais le travail du Réseau Ferré de France (RFF). La SNCF ne s'occupe que des trains qui roulent dessus et d'une partie des gares.
Tchou tchou..

.