I'm going to go against the grain here and suggest that, instead of pre-generating your curves, just handle it on a frame-by-frame basis, using (for example) the same logic you'd use to create a homing-missile.
This will be much easier, and probably more realistic because you don't need special-cases for when there are walls between two points - you just handle collision detection as usual.
The downside is the movement will look sub-optimal. The object will always take the most direct path from one waypoint to the next, meaning, unlike with a spline, he won't start turning towards waypoint 3 until he has already passed waypoint 2. Depending on your situation, this may or may not be fixable by adjusting your waypoints (if it's even a problem).