Thanks for your response, Christophe. And a good question.
I've been using Kevan Stannard's way of handling nested sets until now but it is cumbersome in that it has to have 3 fields to position an element in the tree. Moving an element from one place in the tree to another requires quite a lot of sql. Not a problem if there are only a few movements at a time (e.g. a CMS) but in a products database there could be lots of movements, or mass movements or whole product groups.
The MS HierarchyID uses a single field, which is part of the element's record along with the part name, part number, etc etc, and elements can be moved around the tree with a single update statement on a single table, just like updating any other field. That seems on the face of it to be a much simpler thing to use.
Hence my question - my understanding is largely theoretical, from reading and a few small scale experiments. Before I dive in and commit to using it, I thought I'd see if anyone else had used hierarchyID types and if there were any 'gotcha's' and if it did in fact deliver the improvements i thought it might.