The first parameter is the current z co-ordinate, the second parameter is the angle of the movement, and the third parameter is the number of units to move. The underlying code for this command is along the lines of 'NewZ = OldZ + Cos(Angle) * Distance'.
With an angle of 0 the movement would be straight forward, so the result of 'NewZValue(0, 0, 1)' would be the original z value, 0, moved forward by 1 unit. Which gives us 1.
With an angle of 90 the movement would be entirely sideways, along the x axis, so the z co-ordinate would be unaffected. Therefore the result of 'NewZValue(0, 90, 1)' would be the original z value, 0, unaffected.
With an angle of 45 the movement would be a diagonal. Using trigonometry, we can work out that the ratio the z co-ordinate would be affected by movement at this angle to be about 0.7. Therefore, the result of 'NewZValue(0, 45, 1)' would be the original z value, 0, moved by the distance, 1, multiplied by the ratio, 0.7. Which gives us 0.7.
The 'NewXValue' is the same but for the x co-ordinate, and hence uses the underlying code 'NewX = OldX + Sin(Angle) * Distance'.
I hope that makes some sense but please let me know if you need anything explained more clearly.
[Edit] I had to make some punctuation and grammar tweaks. [/Edit]

Previously TEH_CODERER.