I am writing this script on the fly so don't blame me if it doesn't work.
And my example will use 9 o'clock 20m distant.
sol1 will be the soldier in question.
; blalalalalal, I wrote this - dismas
_possol1 = getPos sol1
_dirsol1 = getDir sol1
; 9 o'clock is 270 degree offset from direction player is facing
_dirsol1 = _dirsol1 + 270
; I'm pretty sure that OFP corrects for values greater than 360, but some correction lines may need to be added
; new position, not going to worry about our third dimension
_newx1 = (_possol1 select 0) + (20 * (sin _dirsol1))
_newy1 = (_possol1 select 1) + (20 * (cos _dirsol1))
_newjeep = "jeep" createVehicle [_newx1, _newy1, _possol1 select 2]
exit
edit: edit:
heheh, made a small mistake +/-, and another mistake with 1/0.