What is the difference between nachvollziehen and verstehen? In my dictionary they both mean “to comprehend”. Do they have a big difference in usage?
"Nachvollziehen" and "verstehen" both are very similar in meaning (as you already found out), but there are some subtle differences that I want to emphasize here.
These details are kinda specific, so you should be fine with using both words synonymously in (most?) other places. When in doubt, use "verstehen" since it's more common.
If you are either able to retrace or to reconstruct something or able to follow someone, then you can use nachvollziehen. If, however, it's just about understanding and comprehension of the nature of something, you can only use verstehen.
Both words have an overlapping sense but verstehen is a little broader in meaning. You can use verstehen when you are able to hear someone, as in Can you hear me?:
Or if you didn't understand someone, then you say:
Apart from that, verstehen is basically used in the sense of to understand the meaning or significance of something. Examples:
Nachvollziehen is synonymous to verstehen in many contexts. I think there's a simple way to find out if that is true. This is actually already mentioned in the other answer, I will just put it in another way again.
The meaning of nachvollziehen is to retrace or to reconstruct something in mind. Example: If you are able to retrace the feelings someone has when someone close to them died, you can say1:
Another example: Your math teacher explains how to solve an equation and you are not able to follow him, i.e. how to get from, e.g., step 3 to step 4, you can say:
In both example you can still go with verstehen though.
1: I am aware that you hardly ever will be able to fully understand what someone is feeling in such a moment; it's just an example to make my point.
Nachvollziehen has the connotations of being able to "follow" or "get" something in a step-by-step fashion.
Verstehen refers to "understanding" in the sense of fully comprehending something, or grasping the whole at one time.
Nachvollziehen means to comprehend a complex situation by retracing it step by step from beginning to end until you get how this situation or outcome appeared.
Verstehen means just that you got it. Usually without having to retrace the steps. Because the thing to understand was less complex or in other words simple enough to get / understand without having to get a long explanation.
Or you had similar experience and "knew" the steps already. But then if it is complex, you can "nachvollziehen"; if it is simple, you just "verstehen".
Although far less technical than the other answers, I think of the English slang phrase "I'm picking up what you're putting down." If that phrase works better than "I understand", then you nachvollziehen is more appropriate. Again, not nearly as scientific as the explanations above, but it seems to work fairly well.
There is also one practical detail about the difference between the two.
When there is a discussion going on and somebody replies to what another person says starting with "Das (what you say) kann ich nachvollziehen" instead of "Das kann ich verstehen" it can be a very diplomatic way to introduce a contrary opinion. Because "Das kann ich nachvollziehen" implies that although you don't really agree with him you perfectly understood why he thinks that way which lends your following contrary statement more substance. If you would have said "Ich kann das verstehen" it somehow implies to a little extent that you AGREE with his view, you agree to his thoughts in that context he explains while nachvollziehen is more UNDERSTAND his thoughts.
But the difference is still very tiny..