I'm actively working on a Call of Duty 2 map loader. I'm using Unity as a base for easy prototyping. This is a work in progress! I've reverse-engineered the D3DBSP and .IWI material format. It can currently generate level meshes based on the compressed data on the disk. The next step is loading objects/entities.
The map loader code is open source, and can be found on GitHub (https://github.com/CptAsgard/CoD2Unity)