Both nam and enim are generally defined as meaning "for," the only difference between them being that nam comes first in a clause and that enim is postpositive (i.e., it comes second).
Is there a semantic difference between them?
I posted this question here because it was something I struggled with for a long, long time, right up until I read Caroline Kroon's article "Latin Particles and the Grammar of Discourse" in A Companion to the Latin Language, ed. James Clackson.
The difference between the two isn't so much semantic as it is . . . dí immortálés, I'm terrible with terms . . . about discourse?
Basically, nam has a narrative function, where enim has a dialogical one. With nam, the speaker is simply informing the listener of what he believes to be a causal relationship between two facts. With enim, the speaker is indicating that he thinks the listener is on the same page as he is. I've found the easiest translations of enim, then, to be "y'know," or "right?" (in questions), or even "after all."
Dídó sibi mortem cónscívit, nam ab Ænéá relicta erat.
Dido killed herself, for she had been left by Aeneas.
There I'm simply telling you the facts.
Dídó sibi mortem cónscívit, ab enim Ænéá relicta erat.
Dido killed herself; she had been left by Aeneas, after all.
There I'm showing you an assumption I'm making that you believe as I do.
Think of enim as being accompanied by a knowing shrug or a nod of the head that invites the listener to agree.
I was recently reading Karl Gottlob Zumpt's excellent Grammar of the Latin Language, which contains an extensive section on conjunctions and their differences (pp. 250ff).
His distinctions are largely the same as the above answer, but it might help to shed some more light for those who are still confused:
Besides the practical difference that nam begins a clause while enim is postpositive, he states:
The difference in meaning seems to consist in this, that nam introduces a conclusive reason, and enim merely a confirming circumstance, the consideration of which depends upon the inclination of the speaker. Nam, therefore, denotes an objective reason, and enim merely a subjective one.