That's great Dave, thanks for your help.
I was thinking that it would be great to use a database to store sitemap info, and didn't realise you could extend the provider so easily.
I ended up implementing an Access Sitemap Provider which works good - I was a little confused at first as to how you could add custom providers but I should have looked into it earlier, for those who are unsure like I was, here's how to add an Access Sitemap Provider;
1) Go to this page http://msdn2.microsoft.com/en-us/library/ms178434(VS.80).aspx, copy the code in the relevant language into a new class in the App_Code folder and save it.
2) Create a new Access database and call it Sitemap.mdb (use the SQL code found in the link and paste in into the SQL view of a query, and execute - *NB for some reason I had to add my own Primary Key and change Int32 to just Int).
3) Add the provider information into your web.config file remember to include the full namespace in your type field.
I think I understand this pretty well now, so post to this thread if you think I can help.
Thanks again.