Somebody at Wiley intercepted your message and forwarded it to me. A miracle ;-)
So, I got the files and looked at your site. Amazing how looking at code for less than a minute can solve a problem that needs days of explaining.
You're using the .NET 3.5 book and associated resource files using Visual Studio 2010 and .NET 4. The way the Menu renders has changed considerably between these two versions. Rather than generating old skool tables, the menu now renders clean <ul> and <li> elements. This renders (no pun intended), part of the CSS from the 3.5 book useless. More importantly, a table equally divides its cells over the full width available. So, a menu of 1000px pixels with 5 elements gives each item a width of 200 automatically. With a <ul> and <li> items, you need to do that explicitly.
So, to summarize, your dev tools and framework on one side are not completely compatible with the 3.5 book and its resources on the other side.
Three ways to fix it:
1. The expensive way
Buy a copy of Beginning ASP.NET 4 in C# and VB
and learn new stuff right from the start.
2. The cheap way
Download the code for the Beginning ASP.NET 4 in C# and VB
book and use that in your menu and master page
3. The cheesy way
Make the following changes to web,config:
<pages theme="Light" controlRenderingCompatibilityVersion="3.5"
This tells controls to render the way they did on 3.5, causing the menu to render as a table instead of an <ul> element, instantly fixing the problem, leaving you with the slightly unpleasant feeling you're doing things the old way.
Hope this helps, and hopes it also shows the necessity of posting relevant code ;-)
The code you sent earlier doesn't contain the contact form validation code, so I can't say much about that. Sounds like a mismatch in function names, or like a bad implementation of the code. Posting the relevant markup of the User Control could shed some light on this.