Hello again Cooldude. We had such fun with the 3d calc last time, I thought I'd chime in again. Actually, just wanted to say that if you google "line plane intersection code" you'll a few useful hits. Easier than me typing it all out, anyway.
I may be a bit old school in terms of my gaming, but because collision detection can be quite computationally expensive there are a couple of tricks that tend to be employed to reduce the number of calculations.
Invisible bounding boxes around objects. Where each detailed model has an invisible, crude model associated with it that is used for collision detection. doing precise collision detection on a detailed 10k+ model is far more expensive than for a 500 poly blocky model, so it kinda makes sense. You see this in games all the time, where you can see a bullet's tracer missing/hitting something very clearly, and the game reacting to it wrong - what you don't see is how the bullet is striking the bounding box.
When shooting through objects games like railings or chain link fences, games will often treat the whole object as a 2 poly collision object and roll randomly to see if the bullet goes through unimpeded. E.g. the alien robot zombie is behind a metal railing, the bullet goes through railing space, then the enemy space, so at the railing space there is a 10% that the bullet stops. Rather than going through the expensive calculation of detecting the space of each rail individually.
Do an initial calc of which objects are even in the right area/direction and if they're not then don't even bother trying to do collision detection. Just makes sense, but it does need to be done.
You probably know all of this already, but I thought I'd just add it just in case. If you are having trouble with your frame count, then proper collision detection can have a pretty significant impact.