I did have the same problem .I guess you are trying to use the DistanceTo method of the current Location to the location object of the next direction or present direction object . Rather try DistanceTo from the Next Direction Object to your currenct location this will give the distance from the start of the next direction to the current Location.
1) CurrentPosition is the pushpin of your current location
2) Dir2 is next direction from the current location.
if you do this you will get the distance from the start of the next direction which is also the end of the current direction .
Incase you need any other help feel free to mail me at
"sgkini at onlinehome dot de" . I am presently working on using mappoint from VC++ for my incar navigation system