This can be done using only two modified servos, an IR rangefinder and of course a microcontroller.
One idea would be to have a threshold, or distance from your robot to the wall, and a displacement factor. Using a simple if, else if, else statement you would tell the robot to read the IR sensor value, if that value is greater than the threshold - displacement factor and less than the threshold + displacement factor, then drive straight (the 'else' part). If the IR sensor value is less than the threshold - displacement factor, then depending in which direction your IR rangefinder is facing (either left or right), turn left or right (or move in the direction opposite of the wall) (the 'if'). If the IR sensor value is greater than the threshold + the displacement factor, then move right or left again.
Assume we are using the track shown in your picture, and your robot is placed on the left side of the pathway.
Lets assume that when placed at the start the distance from where the IR sensor is mounted on your robot to the wall LEFT of the robot is 15 cm, therefore we can say the 'threshold' would (or should) be 15 cm. let us also assume that the displacement factor is 2 cm.
You start your robot going off in a straight line. While you do this, you constantly read the values from the IR sensor. (even though the sensor values will be between 0-1023, lets just stick with cm to make things easy). As the robot approaches the first right hand turn, the sensor begins to read a lesser and lesser distance. When that lesser distance is less than the threshold - displacement factor (ie. 15 - 2 = 13 cm), the robot stops its right wheel and moves its left wheel, thus making a turn to the right. When your robot makes a right turn, the sensor is brought away from the wall again, and is no longer less than 13 cm away from the wall, therefore the robot stops turning right and goes straight again.
on the second, left turn, as the robot travels the sensor eventually will read a value greater than the threshold + the displacement factor (ie. 15 + 2 = 17 cm). When this happens you would tell your robot to turn its right servo and stop its left.
put that if-else if-else statement in a loop and you have a wall following robot! =)
Take a look at the picture to see what I mean.