You still haven't given us enough information to make any kind of determination what could possibly help you.
What OS version are you on? XP home/pro and is it standard 32 bit?
What media/medium are you installing from? Retail CD? Normal BF2 or the special edition? CD or DVD? Any downloaded content? You have a full retail CD and CD Key, correct?
Please provide all of the above. Plus, you should do a FULL/CLEAN uninstall as well by:
1) Visiting Control Panel, Add-Remove Programs and removing all BF2/BF2 expansions in the reversed order you installed them.
2) GO to the directory where you installed them and delete this folder as well if it's still present.
3) Go into My Documents and delete the Battlefield2 folder there.
4) Fire up RegEdit and delete the following keys:
under HKEY_LOCAL_MACHINE\Software:
DICE (delete any keys beneath this for Battlefield2. Delete the entire DICE key if all you have here is Battlefield2 entries)
Electronic Arts
--EA Core\Installed Games\EA Games (any BF2's that may be here)
--EA Games\ (Any Battlefield2 keys here. Delete the entire EA Games key and subkeys if all you have here are BF2 games)
5) Purge your user account Temp folder (again, start menu, Run, %TEMP%)
6) Then reboot, and start with you FIRST installation (Battlefield2). As we're not psychic, you'll still have to tell us what this is (standard BF2 CD, Standard BF2 DVD, or Special Edition, etc.etc.) WHAT happens precisely at this stage? Does this complete or no?