Thanks zenmonkey, I have thought of the 301 option.
I guess what Im looking for is a way to implement url aliasing.
for instance as I understand it, in drupal a url has an internal name of "node-1", and can be assigned an alias such as "category/sub-page.htm" which then is populated to all internal links, although the internal name "node-1" is retained. Then if you at some point change it to "new-name-of-category/new-name.htm" it just works because the internal name was always "node-1" and you only changed the alias.
Is ther anyway to do something like this with silverstripe, for instance by building a new module for it, or is the issue that silverstripe does not use this seperation of machine name and human readable name, so aliasing is impossible?