Basic explanation of this problem is as follows:
The FS2 engine has to keep track of all objects in the mission and their positions in a list of "collision pairs." If at any time two objects occupy the same space, the appropriate collision procedures are invoked. Laser shots, ships, asteroids, etc, all count as objects to be kept track of, and each object has to be paired with each other object. As the number of objects increases, the number of pairs increases exponentially.
The problem is, there can only be a finite number of collision pairs in the list, which means there can only be so many objects in the mission before the engine runs out of available space in the collision pairs list. If the list is full, new objects will not be paired with other objects. When that happens, they will not go through the usual collision procedures, but instead pass right through each other.
Laser shots are invariably the newest objects in the mission, since they appear and disappear so quickly, so they are the prime candidates to be left out of the list. So, if you have a mission with lots and lots of fighters shooting lots and lots of lasers at lots and lots of capital ships in an asteroid field with lots and lots of rocks in it, FS2 simply runs out of space for all those collision pairs, and the newest objects in the mission, the laser bolts, won't collide with anything even if they pass through the same space.
Edit: Someone (Kazan, I think) tried to increase the number of collision pairs available in order to make better asteroid fields that would still work, but the attempt had bad consequences. Do a search for Asteroid Fields in the SCP forum for more info.