Try a complete reinstall. Delete everything you find that has a BF2 on it before reinstalling the game. You don't need to download patches in order to play the game.
After you have completely reinstalled everything related to BF2, go
https://battlelog.co/downloads.php#client and click the download link (OS if you have apple). You may have to turn your antivirus off during the installation.
After installation, try open the game and see if it works