Ended up not using Mr Chens example as we had reservations on how whell this would be used with the SiteMapResolve event. The current implementation is a complete hack requiring 2 (yes 2 providers) one to check the node and the other to build up a temp sitemap with query strings appended and a user control sitting in master pages working with the two. This means the code is very delicate and only take one person to change the default provider to break the whole thing. I think i have written more comments that code on this and cant say im too proud of the work, but mainly disappointed in MS hack around site map and thir providers... more perhaps to come once this goes though full test environment.
lessons have been learned