There's probably MUCH better ways of doing this but something that comes to mind is that you could divide the track into zones, and each zone would have a range of directions (angles) the car is allowed to have, and if it's outside of those angles then it's going in the wrong direction. For example in the track you showed us, the left side of the track would restrict the car to angles 180 to 360 (or whatever). The right hand side would be 0 to 180, etc. To know which zone the car is in you could use invisible sprites that cover each zone and do an overlapping test with that sprite and the car, or check x,y coordinates to determine which zone the car is in.
Another thought is that if the driver is collecting checkpoints in the wrong order, you'd know they are going in the wrong direction.
Yes, the order of chekpoints would do the trick, but as you saw in my sheet there is set instance variable to Pick instance with lowest (variable) but (I don't know how it is possible) always counts checkpoint. In other words, Sprite called checkpoint has uniqe variable and I pick the lowest value of this variable but always when I get through checkpoint system counts that checkpoint as correct.
If my words are too confusing I will provide necessary files.