Designing a user interface which is solid yet flexible has definite advantages. From time-to-time your interface can and will be put to the test - whether it's something that has to go-live immediately, an update to its branding, a request to accommodate something that doesn't quite fit your model, incorporating a new feature or functionality that's cool but tricky, making something work globally, and the list goes on. There are many challenges your interface is likely to encounter in its existence and needs to be able to accommodate. Clearly, doing a full-on redesign every time you need to make a change is neither practical nor possible. The interface needs to be adaptable. And, striking the right balance between the usability of the interface and accomplishing your latest UI mission-impossible is critical to the user experience of your interface. In the course of its lifetime, your interface is likely to be stretched to its limits, it's original rules abused and broken and new ones created, and additions made to it which can seem like extra appendages. It happens to the best of interfaces. The idea, however, is to ensure your interface can stand the test of time. As while you can't plan for what you don't know, you can design your interface to be flexible, adaptable, and scalable - to accommodate the unknown. For example, don't fill every inch of real estate with content, leave room for an extra tab, think hierarchy, and design with CSS in mind. But most of all, have fun with it :)!