Two main reasons. First, we're not just using the stock ns-2 simulator for our research, and we'd like to track the changes we make in CVS. Second, it doesn't work on the giant machine queue without some alteration. The required modifications are in our local version so that you don't have to rediscover them on your own.
Assuming you have access to the main systems group CVS repository, just check out the "ns2" module. The build process is mostly like the normal "all in one" build for ns-2, but there are a few subdirectories which are stored as .tar.gz files instead of being checked in to CVS as a regular subtree. This was done only to modules which shouldn't require any modification by us. If you think that you do need to change them, think twice, and then talk to Mike Neufeld before actually going in and doing it. You may also have some trouble building nam on the Alphas. The workaround is to run nam on an x86 Linux box. If this really bothers you, feel free to fix it.
Good question. It all depends on the type of change you've made. If it's a generally useful enhancement which doesn't interfere with normal ns-2 operation or a bug fix, then it can probably go back into the mainline. If not, then it should probably go into a branch. In either case, talk to Mike Neufeld before going nuts with the checkins.