If the derived class "Node" did require an explicit overload, it would be for an assignment operator that takes an argument of the derived type, not the base type. Or perhaps I didn't fully understand your situation?
No you're right, there are probably not many cases where a derived type is assigned to a base type. I was simply being hypothetical.
As a side note, the standard way to do that is with pure virtual functions. If there's no other function that needs to be pure then make the destructor pure virtual. A class that people inherit from should generally have a virtual destructor anyway - you can run in to trouble when deleting an instance of the class if it's not.
I didn't know you could make the destructor pure virtual, thanks for the tip!