[eluser]Colin Williams[/eluser]
I think it might be a bit backward to think about design last. Or, it might just be a narrow definition of design to think it only happens when you get into CSS.
For me, design has always been the vision that leads a project. Database design, back-end code, front-end code, these are just tools that facilitate the design, the vision.
I think sketching on paper, being disorganized, is actually a great way to start. (Even with designing things like PHP classes, I have pages and pages of my notebook with hand-written code, mapping out ideas, crossing stuff out, thinking aloud.) Keep things open. Don't count any idea out, but don't lock out good ideas just because they come late.
I've been working on a personal project for about 2 years now. It's gone practically nowhere so far. I've redesigned it maybe 10 times and scrapped the whole codebase at least 4 times. But I'm so happy where it's at right now. I'm so happy I didn't finish idea 1, or 2, or 7, or 9, because 10 is my favorite. That matters to me.
Of course, my professional work exists within realistic timelines that matter to more people than myself. And my approach there is fairly conventional. Conversation. Sketching. Exploring. I usually don't get into Photoshop until I have a good image in my mind with where the site goes. Sometimes it's frustrating and it doesn't happen right away, but I've got ways of stimulating the mind when that happens ;-) (Not really. Not like that.)
I might be rambling, but I'm in a good mood for discussion. Feel free to ask anything else.