In Game Programming Gems 4 there is a whole article on different methods of doing team colours. The algorithms they discuss are
- unique textures for each team colour
- tinting model polygons to the appropriate team colour
- texture masking using multitexturing
- texture masking using multiple passes
- advanced pixel shader effects
They describe the advantages and disadvantages of each approach, and provide a sample DirectX implementation of each. If you want more information on a certain approach, I'll spend some time to copy that part of the article over from the book.