I was running into an issue where my serverside OnPopulateNodes method was getting called, but was not passing any arguments.  As a result, the nodes argument was null.  I traced it back to the fact that I had set EnableViewState=\"false\" for the page.  
This seems strange to me, but I can repeat it on any node, by setting the EnableViewState=\"false\" for either the node or the page.  Is this something that is totally necessary or am I missing something.  I have a page where I have a lot data in the tree and don't want the viewstate to contain all that data (for performance reasons).  However, I also need the populate on demand to work on a few nodes in this tree.  The whole process works great with ViewState enabled, but I don't want that.  
Thanks,
Jamey