Yeah, I guess to explain what the comref says, in case it isn't clear:
When you pass an array via the "exec" ([array1, thislist, etc] exec "blah.sqs") command or the "=" command (listB = thislist), you aren't passing a copy of the array, you are passing the reference to that array. So changes in either "variable" will affect the other one.
Imagine if you passed an object to a script, like [player] exec "blah.sqs". Any 'changes' you made to the object in one script would also affect that object in another script, even if it is referenced under a different name (maybe "player" in one script, and "_man" in another). Arrays just act like objects in that regard.
Most people have used this 'feature' of arrays all along, without realizing it; for example, placing a trigger of limited size, and executing a script that waits until "thislist" reaches a certain size. I never realized it until I happened to be browsing the comref, and read the above portions. A while later it finally dawned on me what it meant :-X
If you don't want this effect, then you need to make a copy of the array like this:
array2 = +array1