Many researchers around the world are developing modified versions of ns2 in order to introduce new features such as agents, protocols, algorithms, etc. The standard practice adopted in doing this is to get an official version of the ns2 source distribution, make the needed modifications on the source code, add new files somewhere in the existing code tree, and finally build everything into the ns2 executable.
In other words, adding functionalities to ns2 means making changes to the whole ns2 distribution. In some cases these changes make their way to the official ns2 project; often, however, this will not happen because of several issues like poor backward compatibility, unproven reliability, and so on.
Still, it is often the case that people are interested in using or modifying some of these ns2 extensions (note that there are some very popular ones, such as IEEE802.11e). Installing them involves, in the best case, downloading the official ns2 distribution and patching it. In the worst case, it is necessary to manually replace specific code files in the ns2 code tree, or even to download an entire modified ns2 distribution. In general, keeping different extensions available requires having separate ns2 installations.