Lo primero es que yo no tengo el BF2 pero hace unos cuantos meses que tengo instalado Ubuntu. Después de leer foros y tutoriales varios conseguí hacer funcionar de forma decente el CS 1.6 y el CSZero y era debido a que corren bajo opengl. El CSS me funcionó en Cedega pero a 20/30 fps como máximo con bajones de 10 fps y gráficos DX7 cuando en windows me iba entre 40-60 fps con DirectX9 y casi todo en calidad alta. Pudiendo jugar en windows con calidad media/alta la verdad que paso de jugar con gráficos DX7 (y aún paso más de pagar por el Cedega). Los juegos de windows con soporte Opengl quizás vayan más fluidos en linux, los de windows/directx no.
Mi recomendación es que para juegos que requieran directx utilices una partición con windows, te ahorrarás muchos quebraderos de cabeza, de verdad. Yo a los FPS que juego (y muy de vez en cuando) bajo linux son el Enemy Territory+Pro Mod (estilo counter) y al Warsow (tipo q3 arena), ambos nativos para linux y gratuitos.
Te dejo unos enlaces para que intentes lo de BF2 bajo linux
BF2 Cedega Wiki Wiki de BF2 bajo Cedega (Inglés)
Ubuntu Forums - Gamming Foro oficial Ubuntu-Juegos, utiliza la búsqueda a ver si encuentras algo (Inglés)
Ubuntu-es Juegos Foro español de Ubuntu/área de Juegos, utiliza la búsqueda también
También puedes probar a buscar en google "How to BF2 Cedega" (sin comillas)