I was having the same problem as everyone else here while using watchOS 1.x until I followed the workaround mentioned by dacheng81 upthread to turn off "Motion Calibration & Distance". That fixed the problem for my outdoor walks. I believe what was happening is that the watch determined a calibration of my stride using the GPS in the first few walks, but then as I increased my pace, and consequently my stride, that caused the under-reporting of distance when the watch switched over to not using GPS (even though I had my phone with me at all times). The workaround causes GPS to be used always, then the distance is accurate. However, when I went on an outdoor bike ride, the distance and speed were both reported was zero! That's counter-intuitive since the bike ride should always use GPS, but apparently turning off the setting prevents it. So, to use that workaround required changing the setting for each activity.
Now I have updated to watchOS 2, but I have not yet gone back to the default setting. For those of you testing with watchOS 2, do you have "Motion Calibration & Distance" turned on?