NODE_NETWORK is a constant flag that is applied to nServices, a bitfield. Not applying it leaves nServices at 0, but NODE_NETWORK remains at 1.
Without NODE_NETWORK, you are not a "network node".
In the Satoshi client, there is a global variable in net.cpp called "fClient" that controls whether the local node is a full node or just a "client".
This variable is currently hardcoded to false.
If the variable is changed to true, then NODE_NETWORK will not be applied to the nLocalServices variable and the local client will not advertise itself as a full node when it sends the initial "version" message.
Other nodes will see this and not ask that node for blocks.
Note, you may want check with Gavin on the status of using fClient mode. Most of the flag variables are hooked up to command line parameters, but this one is not, probably because it is not ready and well tested. Quoting Gavin from the following thread last month:
http://sourceforge.net/mailarchive/forum.php?thread_name=CAJ1JLtu7UXz2X25iWLKUUmK%3Doapj8OzGRH964JY%3DPpzd8rOfTg%40mail.gmail.com&forum_name=bitcoin-development
"Stuff I'd like to see in the release-after-next:
fClient mode (download headers only, for faster initial startup; I've started the work, talk to me if you want to take over)"