I can't speak for everyone, but I tend to separate things like images, javascript, CSS, etc in to different folders. Then make some sort of "include" folder. The crux of this "include" folder are 2 files, normally called commonFunctions and databaseFunctions. As you can imagine, anything that involves a transaction with the database goes in the databaseFunctions file and anything else (such as email processing and such) goes in the commonFunctions file. If I have to build an admin panel with it as well, I put everything it needs in a separate directory so it is completely independent of any other files.
Perhaps the most important methodology I use though, is a white board. Not just 1 white board, lots of them. Every application I write is documented fully on white boards. File layout, function layout, how the application flows, future thinking ideas, even some base pseudo-code is written on these white boards. Once the website moves out of "construction" phase and is live, everything on the white boards gets photographed (I use a Nikon D5000 but you can use whatever you have to take high resolution pics) and digitized for future reference. That way, anyone on the team can reference them at any time. When an application comes up for a rewrite, everything that was written on the white boards either gets rewritten back on them, or are printed on poster printers and taped to the walls above the white board.