Hello,
I've been developing a "fake" AI system for my CTCC game and my first approach wasn't good enough so I came up with a new waypoint system.
Here is a picture of my (beta) circuit editor:

As you can see all the waypoints have middle / left / right aim-points. When a car is driving around the track it aims for the closest waypoint in order to cut corners and get a good race line. The faster the car travels the further ahead it looks, this way it can plan to take corners while skidding.
The grid and squares is a data array so the AI cars instantly know which waypoint they are currently at, it's very fast and does not require complex calculations to save time. This way it's also possible to get cars out of sticky situations if they've skidded into a corner as you basically tell them how to get back on the track.
I've also given the waypoints upper / lower values in order to drive under / over bridges etc. Also, if a pitstop is needed it redirects onto another set of waypoints.
I noticed that I don't have to worry about overtaking too much, on this scale the cars quite easily find their way around eachother if one is faster than the other.
Hope this helps, it's proven to work quite good although I am tweaking the system.
Here are the cars in action using this system:

Stefan