.I am not entirely sure HOW it is working (as I just copied the rc.firewall script).
Well that was easy huh!
My guess is that if you are using a stock kernel, then all the modules you needed were built and waiting to be loaded. The firewall script itself has code that loads the modules, so you were off to the races.
Just remember that if you build a custom kernel you should follow the advice in the howto to make sure the needed modules get built.