I've been doing web design for 6 years now, and I've found the content-first approach (described here) to be very successful. My typical process for effective interfaces is:
1. Receive all content the client has to offer, and ask them what their goal is with the site.
2. Organize that content into a site map, and prepare a visualization to discuss with the client. My visualizations are similar in style to Dan Brown's well-known example [PDF].
3. Draw the interface screens. For web applications, I like to make HTML dummies that demonstrate the process of using the application without actually doing anything. For normal static sites, I create images showing the interface and design.
4. Meet with my developer(s), and determine any technical limitations imposed on the interface designs by the available software.
5. Adjust the designs, or developers, accordingly :)
6. Produce final interface designs.
7. Let the programmers do their thing (ie: make it work).
This process first addresses content, then interface, then back-end - and it works.
-- Ryan Singer, February 14, 2003
This is the page that this quote came from -
http://www.edwardtufte.com/1576494545/bboard/q-and-a-fetch-msg?msg_id=0000P9&topic_id=1&topic=Ask%20E%2eT%2e
Link to the site's questions section -
http://www.edwardtufte.com/1576494545/bboard/q-and-a?topic_id=1