If you're using a tileset, you can use the tile IDs to determine what terrain the car is on, and go from there. If you're not, you can do essentially what MarkR suggested to accomplish the same thing (Some basic skills with GIMP or Photoshop can pixelate and even boil down colors for you so it'd be pretty straightforward)
The problem with this method is that tight corners, hairpins, overpasses, etc might not work as expected. It's been a long time since I played Micro Machines, but as I recall you were prevented from taking major shortcuts even if you never went fully off the track. You couldn't just drive off an overpass onto the track below to skip half the track. One possible solution to this is to add essentially "checkpoints" along the track, that are invisible to the player. There could be 50 or even 500 of them on a single course. The player has to get within X distance (which could be pretty far away, essentially your reset car to track distance) to "activate" the checkpoint, and if they activate checkpoint 32 without activating checkpoint 29~31 first, boom.
The mini-checkpoints is a somewhat complex solution, but it gives you a lot of flexibility elsewhere in your game. Now you can more easily track distance to the finish line, use them for your AI logic, use them as the reset points when the car gets blown up, etc. (Actually I think the reset is especially valuable since you can just back them up 5 or 10 checkpoints as a simple way of penalizing them, and there's no nasty track calculations to do)
Edit: To that end, might make sense to have the checkpoints be vectors, so you can point the cars in the right direction, and detect "wrong way" before a bunch of checkpoints are crossed in reverse.