Having a graphic designer as a brother, and having done a few site designs myself, I have come to understand the different thought processes between the design aspects and the coding aspects. Since the graphic designer focuses so intently on the site's appearance, things like making sure every button and margin are properly lined up are quite critical. As a coder first and foremost, I often consider such things as links extending a few pixels past the right-most (invisible) border of a text area three inches down the page to be less important than making sure the links aren't going to spontaneously start taking up two lines if the client decides to add a new category.
So one of the important parts of designing a site is going to be designing for the expandability that it will need to include. Take, for example, a somewhat static site that creates custom corporate apparel and other promotional items. Given the custom nature of the promos and the fact that each page is more likely to have a specific role (as opposed to each page basically displaying a different product in the same way), this site doesn't need to be as expandable as some. You can focus on each page individually if you like. However, there are still going to be certain areas that can stay the same across all pages. There is almost never any need to create multiple designs for the navigation for different pages; it just complicates the overall design and makes it harder to make site-wide updates or add new pages.
When designing for database-driven sites, such as one that sells religious jewelry, the thing to remember is that the client is probably going to be updating and adding text. If you thought trying to get the coder to position the text exactly how you want it is hard, just try getting your client to do it! Here the challenge falls on the coder to position the text properly, and on you to design an area where the text can go where it will look nice regardless of how much there is. Keep images in mind too; unless you know that every piece of religious jewelry will be a 500 by 500 pixel square, the position of the image is going to need to have a frame that will accept both tall and wide images. A good tactic is to use a square frame, and have the coder set up the admin to automatically resize the image to the frame's size in its maximum dimension.
The above strategies become even more critical in member-driven sites, such as a work at home jobs directory. At this point, your design has to be expandable enough that various members can make their posts without throwing off your layout. Do not go designing a work at home job directory that is meant to all fit into a single frame with no scrollbars. No matter how nice it looks. No, not even then.
Designing for expandability is no more complex than coding for the specifics of the design. Both things need to be prioritized by both the designer and the coder, or the creation of the website simply won't go as smoothly as it should. By discussing with both the coder and the client how expandable a site will need to be, and designing with that in mind, you maximize the chances of your design coming out on the web the way you first envisioned it in Photoshop.