i worked closely off the readme file in the win32 dir of the bz source.
i'll try to remember the steps based on what i have on my hdd now:
1. msvc++ 8 express
2. winxp sdk
3. directx sdk
4. libcurl-7.18.0-win32-msvc.zip
5. ncurses-5.6.tar.gz
6. load the .sln file (bz solution file)
7. point the IDE to all the lib and include dirs
8. hit the magic "compile solution"
from here i kept an eye on the compiler warnings and errors. warnings are ok to ignore, you'll get around 100 in total. any single error though is a killer. each error is unique so get this far and post your errors!
i remember a few i resolved by copying in some win32 binary install game dll's into the build dir... it was on these forums somewhere. looking at the hdd again, seems they were:
msvcr71.dll
libcurl.dll
finally i got no errors, everything built! i tried out my new bzfs, then connected to it with my new bzflag, it worked great. now here's the interesting part.
i then got an old patch for a new type of flag i wanted to try out. it required both server and client changes. i didn't want to bother with SVN because i don't know how to use it and patch in winxp. so i hand patched a few parts of the new code, and it recompiled ok.
i took in my two new .exe's into the office for our daily lunch hour bz bash, and got this

http://typethinker.blogspot.com/2007/12 ... ation.html - i got a laugh from the "rant" part because it's so true!
it then took me just as long to fix this up as it took me to do all of the above! i don't have the details of the solution here, but here were the steps to make it run on a new pc without all of the dev stuff above. the variable names are guides, don't take them literally:
1. goto control panel, computer management, and get to event log. look for errors to do with SxS (side by side). mine was to do with MSVC.debugCRT, which is the C runtime library.
2. i researched the error, and found you don't just put dll's in the same dir anymore. you need a new dir named just right, containing not just the dll's but a .manifest file in xml with extra info.
3. on the new pc, i put bzfs.exe and bzflag.exe in a new dir
4. next to them, i made a new subdir i magically called MSVC.debugCRT
5. inside that subdir, i put a MSVC.debugCRT.manifest file found thru google, containing lots of magical numbers and values in xml
6. the manifest named a few dll's, so thru random dll sites, i put them in the subdir.
7. i ran bzfs again, and it went past the old error. but now it wanted more dll's!
8. kept adding dll's one at a time as above. remember to enter a new line in the manifest for each one. one time i recompiled with a slightly changed if statement, and it wanted a whole new dll! beyond me.
9. eventually the .exe runs, and we're back online with new flags

10. i plan on making more new flags that simply combine existing flags powers as practice. then try making totally new weapons like a mortar or the good old C&C Ion Cannon!
i liked this solution because unlike other scary stuff i saw while researching, it didn't require me to build new libraries, or require hard to find options in the express version of the IDE to "static link" libraries, or even to "install" anything. it ended up being a copy and paste job.
anyway, like i said, every journey is different so just jump in and have a go. i spent longer thinking about getting into it than it took to install, compile, troubleshoot, migrate, troubleshoot again, and finally play!