I was reading – OK skimming – a book about user interface design. Much of the theme was that too much UI mirrors the underlying design, rather than the users’ mental model. Which I completely agree with. But then the author (whose name I’ve already forgotten, along with the book title) at one point gave the example of that when you drag a file in Windows to somewhere on the same drive, the file is moved, but if you drag it to another drive, it’s copied.
He said this was bad design – reflecting that in the first case, the file doesn’t need to be copied; just the pointer updated, but in the second case, a copy needs to be made.
I’d always thought this was excellent design – when I drag a file to a different folder on my hard drive, I almost always want it moved, but when I drag it to my backup flash memory card, or to a CD or to the network, I usually do want it copied.
I don’t know which explanation is right, and maybe it’s even both (the design originally came from the function, but then someone realized what a good idea it was and left it in, maybe even adding the changing mouse pointer to help users understand what’s going on), but I hope no one reads the book and decides to “fix” it.