I have created or been involved in scores of websites in my 15 years as a web programmer, and one of the hardest tasks is convincing clients that they're missing the point. By the point, I mean the point of having a web site at all. What usually happens is that I ask them one question, and after that, sometimes, they get it (and sometimes they don't).
That question is: What do you want your users to do when they get to your site?
That's not necessarily the same as what are the goals of your site, but of course, it could be. Site statistics have a term called "bounce rate." A bounce rate is the percentage of people who visit one page on your site and then leave. Often, they had searched for a term and your site happened to have popped up so they took a look, leaving after realizing that it was the other "Canuck" they were looking for. A high bounce rate can mean a number of things, but one of the reasons bounce rates jump is because users who happen to reach your site have no idea where to go from the landing page (the page they entered on -- usually from a search site). Another big reason is that you have great keywords and search terms if you take them out of context, but that's a different issue.
You can characterize a site before development by asking a variation on that key question for every element on the site:
What should the user do when he sees this page, this block, this image, etc? And why? The answer to that question will tell you exactly where to put what on the site. Do you need specific landing pages for specific types of users? What should be on the home page, and more importantly, how do you direct your users to what you really want them to do from EVERY page on the site. Chances are, your "chance" users are going to land somewhere in the middle of the site and not on the home page because they found something on Google. Keep that in mind.
Another problem when dealing with clients (and this one I encountered already 15 years ago) is that organizations tend to mirror their internal organizational structure on the site, not realizing that nobody understands that structure outside of their 37 walls. That's great for Intranet, but the Internet is for outsiders (hence the "Inter"). If your site is geared toward outsiders, think the way you may think when visiting a "foreign" website. Don't divide the site into sections the same way your HR department does. Divide it according to the different users who you want to attract.
And when in doubt, test. Usability testing can show you how wrong you were in thinking that everyone is going to understand that clicking "Checkout" will get them to "check out" your product catalogue.
Maybe later I'll talk about that "Like" button showing up everywhere.