Second, I'd use Lerp to compute the weights. If you need non-linear, theres some script in the script wiki that does things like this, I think it's a Math replacement script. I recall modifying it to do almost the same thing you have here, don't know where I put that code though.
Also posted to the forums here: http://forum.unity3d.com/threads/82445-Multiple-Waypoints
– j_y_k