Is it possible to control which applications/processes use which network card? So, for example, I could assign different things to different interfaces? Also, is this possible for the different types of connections e.g. Bluetooth PAN, firewire networking and so on?
Only if the application itself supports this. If it does, it will have config files that allow you to specify either an IP address to bind to, or an interface name to bind to.
You would then find out your internal IP address by checking the Network control panel or the interface by checking ifconfig through the terminal.
As far as I know.