That's a good suggestion Mr. Peanut. Here is the leadvehiclemonitor script by Trevor Hobson from Abandoned Armies (i've been using a lot of his scripts and ideas to try and recreate parts of the AA engine within my own mission). As far as I know with my own mission it works fine in Armed Assault.
; LeadVehicleMonitor.sqs by Trevor Hobson
; This script tries to ensure that a lead vehicle of a convoy or patrol does not get stuck
; This did happen to the east patrol after ~ 20 hours. Hence this script.
; the lead vehicle is moved sideways if it has been stationary for a longish period of time
;called by: [group] exec "LeadVehicleMonitor.sqs"
_grp = _this select 0
_leaderveh = vehicle (leader _grp)
_moveDistance = 3
_tolerance = 15
_maxconcurrent = 5
if not (canmove _leaderveh) then{exit}
if ((driver _leaderveh) == _leaderveh) then{exit}
_index = 0
#findData
if ((LeadVehPos select _index) select 0 == _grp) then {goto"foundIndex"}
_index = _index + 1
if (_index < count LeadVehPos) then {goto"findData"}
exit
#foundIndex
_vehData = LeadVehPos select _index
_prevpos = _vehData select 1
_counter = _vehData select 2
if (abs((_prevpos select 0) - (getPos _leaderveh select 0)) > _tolerance) then {_counter = 0;_prevpos = getPos _leaderveh;goto"end"}
if (abs((_prevpos select 1) - (getPos _leaderveh select 1)) > _tolerance) then {_counter = 0;_prevpos = getPos _leaderveh;goto"end"}
;Vehicle has remained stationary since last checked (reset _prevpos in case it has moved slightly)
_counter = _counter + 1
_prevpos = getPos _leaderveh
if (_counter < _maxconcurrent) then {goto"end"}
_dist = (_counter - _maxconcurrent)*_moveDistance*(-1)^_counter
_newX = (getPos _leaderveh select 0) + _dist * cos(getDir _leaderveh)
_newY = (getPos _leaderveh select 1) - _dist * sin(getDir _leaderveh)
_leaderveh setPos [_newX,_newY,0]
_leaderveh setFuel 1
_prevpos = getPos _leaderveh
leadVehicleSetPosCount = leadVehicleSetPosCount + 1
leadVehicleSetPos = leadVehicleSetPos + [_leaderveh]
#end
_vehData =[_grp,_prevpos,_counter]
LeadVehPos set [_index,_vehData]
exit
EDIT: Use the code tags when posting a long piece of code please. Tags added. h-