How to follow a path by curve points rather than length?
Manual solution

You could achieve this manually.  Start by giving the object a Follow Path constraint and setting the target to be your curve.

In this example, we have 3 control points (of a Bezier curve) and 20 frames.

Go to frame 1, and keyframe Evaluation Time to 0.  Also make sure to set Frames to 20. (these settings are found in the Object Data tab of the curve).



Now, go to frame 10 and slide the Evaluation Time until it appears that the object is at the same location as your second control point and keyframe it.  (being in Edit Mode allows you to see the control points)



Finally, repeat the above process to ensure that object will be at the third control point at frame 20.

Python Solution

If you have too many control points to go through by hand, then scripting this would be possible too.  

The script could start off by calculating the lengths of each segment of curve.  You'd have to numerically integrate the formula for the cubic Bezier curve (numerical integration because it can't be solved analytically).  If you could successfully install SciPy into Blender, you could use their integration functions, otherwise you could write your own script using Gaussian quadrature or any other numerical integration algorithm).

Once you have the lengths, the user could input a list whose n-th entry specifies at what frame the object should reach the n-th control point.  Set the Frames property of Path Animation to the last frame in the list.  For each entry in list, set the Evaluation Time to be the sum of lengths of segments up to that control point divded by the total length multiplied by the last frame.