My friends and I often play BF2 remotely on a vLAN through a VPN, so we are quite used to BF2 networks tricks, and I thought we could trick the game, no luck.
EDIT: I remember now what the problem was, running a co-op local game. They'd allow you to do a LAN game, but not with bots. A friend of mine played it locally in single-player, and I'd use my online account to connect with IP, a button which was only unlocked if you used an online account. You may be able to work around it by specifying the IP address to connect to in the windows shortcut for launching the game.
EDIT2: I may or may have not been using a crack at the time, not sure if that has anything to do with requiring an online connection...
I'm not sure how they reworked the entire thing, so I'm guessing you might find the source-code/reverse-engineered stuff somewhere.
"Project Reality: Battlefield 2 is a free-to-download single and multiplayer game modification for the Battlefield 2 (BF2) retail Microsoft Windows PC game. Project Reality installs alongside your existing Battlefield 2 game installation, allowing both the original game and Project Reality to be played separately without conflict."