Here is what I found after some experimenting.
Store the position of the weapon after it is created:
rpd1="weaponholder" createvehicle blahblahposition
rpd1 addmagazinecargo ["m16",4] (or whatever)
rpd1 addweaponcargo ["m16",1]
rpd1_pos=getpos rpd1All of that can be created in a trigger or script.
Now, in another trigger, put this in the condition field:
(getpos rpd1 select 0) != (rpd1_pos select 0) && (getpos rpd1 select 1) != (rpd1_pos select 1)
Basically, if the weapon moves (gets picked up) then the trigger will activate. It doesn't matter who picks it up. The size of the trigger doesn't matter nor does the position of the trigger. This worked for me.