A couple things, first you are not discussing air resistance correctly. The drag depends on the current velocity, which is a dynamical quantity, not just on the muzzle velocity. You need to use the current velocity at any step of the calculation.
Second, in broad terms, you can think of the problem you face as one of root finding. You have some function $d(\theta)$ that returns the distance travelled as function of theta, and you want to know what argument of $\theta$ will make it equal some special value: $d^*$. You can think of this as finding the root (the place where it crosses zero) of the function
$$ f(\theta) = d(\theta) - d^* $$
And there exist efficient algorithms for doing this without having to check every single value of $\theta$. For this problem in particular, I would recommend the secant method, which is an iterative procedure to give you improved guesses. In this case, it would give you a new guess based on your previous two guesses as:
$$ \theta_n = \frac{ \theta_{n-2} d(\theta_{n-1}) - \theta_{n-1} d(\theta_{n-2}) + d^* ( \theta_{n-1} - \theta_{n-2} ) }{ d(\theta_{n-1}) - d(\theta_{n-2}) } $$
Where $\theta_{n-1}$ is the previous guess at the angle, $\theta_{n-2}$ is the guess before that, and $d(\theta_{n-1})$ and $d(\theta_{n-2})$ were the calculated distances for those angles. You do this iteratively until you've converged, meaning your guess doesn't change much
$$ | \theta_n - \theta_{n-1} | < \epsilon $$
with $\epsilon$ some small number you choose that governs your precision, $10^{-5}$ say.
Now you just have to write a routine $d(\theta)$ that calculates the distance a bullet travels for a given angle and you can find the right angle for any distance in short order.
To help with that, I suggest you use leapfrog integration, or if you prefer, see this se/gamedev answer geared towards programmers.
You've asked a very entertaining question, and the answer is not simple.
Let's ignore collisions for the moment. The "purest" effect, that is, the one which involves no change on the part of the planet or its sun, is the effect of tidal bulges in the sun. Just as the earth, for instance, is not a perfect sphere due to tidal forces, so the sun is not a perfect sphere, due to tidal forces caused by the earth. The resulting bulge in the sun lags behind the planet, and essentially acts as a brake on the planet. Over time, the planet will gradually lose velocity, and will eventually fall into the star. For most planetary systems, the effect will take a very, very, long time, since the planet is much smaller than the sun, and far away.
But there's another factor to consider. Any star produces a "solar wind" which causes it to lose mass. The amount lost per year is small, but it never stops. The result is that, over billions of years the planet's orbit will grow larger as the gravitational attraction to the sun diminishes.
Finally, for stars like our sun, stellar evolution will eventually cause the star to become a red giant. If the diameter of the star exceeds the orbital distance of the planet, of course, the planet will be vaporized. Even it if doesn't, the tidal bulge will become much more effective in slowing the planet, and depending on details of the planet's orbit may or may not cause the planet to drop into the star before the star shrinks to red dwarf status.
In the case of the earth, according to http://arxiv.org/pdf/0801.4031v1.pdf that is exactly what will happen to the earth in (roughly) 7.59 billion years. It's notable that if the earth's orbit were 15% larger it would be safe. But just before the sun reaches peak diameter tidal forces conspire to slow the earth down and it plunges (will plunge)into the sun.
As for other considerations, such as explosions, impacts and shock waves, the answer is that they can have an effect, but generally not much. Basically, if the impact or whatever were big enough to make a major change in the planet's orbit, the planet would cease to exist, and would be replaced by a great big debris field. To some degree this would recondense into a smaller planet with a different orbit, but it wouldn't be the original one. Just as a thought experiment, though, if the earth were to hit another earth-sized body exactly head on, and the other body were in an identical orbit but going the other way, and the two planets fused instead of turning into a massive debris field, the resulting fused body would drop straight into the sun.
As for a planet ageing, for earth-types the answer is, not much. It's true that our kind of planet can lose volatiles such as water and air (and do so at a very low rate), but the total effect is miniscule. We are, after all, mostly rock and iron, and those just don't go anywhere. For gas giants like Jupiter, if they are close in they can get their gasses blown off until there is nothing left, or only the non-gas core. However, any such loss will be at right angles to the orbital motion (for more-or-less circular orbits) and will have virtually no effect the orbital motion of the planet.
Best Answer
The ISS orbit is free of large satellites. So the fictional one from the movie was in a different orbit. Therefore it's not too difficult to believe that debris from it would have a high relative velocity. The debris might have been in a very elliptical orbit with a large range of altitudes.
It's not even necessary for them to have different altitudes. As long as they intersect at an angle, the relative speeds will be very high. (Much higher than would be useful for a movie).
That doesn't mean that the action depicted in the movie was accurate, just that any intersection would likely be at very high closing speeds.
If the other space station had been hit by debris, it would have been damaged. High-speed impacts can't change the momentum of the entire station much. The material gives way before forces build up much, and the interaction time is low.
Deorbit happens over a much longer period of time due primarily to atmospheric drag.