hmmm... well here's the script excerpt that i use to collate the user defined markers -
_markernum = 0
#seek_marker
_mpos = getMarkerPos format["_USER_DEFINED #0/%1",_markernum]
? ((_markernum >= 13) and (not _found)) : goto "begin_satcomm"
? (_mpos select 0) == 0 and (_mpos select 1) == 0 and _found : goto "begin_satcomm"
? ((_mpos select 0) == 0) and ((_mpos select 1) == 0) and (not _found) : _markernum = _markernum + 1 ; goto "seek_marker"
satcomm_targ = satcomm_targ + [_mpos]
_found = true
_markernum = _markernum + 1
goto "seek_marker"
on the assumption that the player will not place markers at 0/0, i give the loop 13 chances to find a marker that is elsewhere. if one is found, it's added to the marker array satcomm_targ. then, if markers have been found and the next is at 0/0, it breaks out of the loop.
like i say, some missions it works just fine, finding all user-defined markers. then other missions it won't even see one. :-\