the jQuery Validation plugin you are using has a set of default classes it checks. Your e-mail and url input fields each have one of those default classes, namely "email" and "url".
The plugin doesn't check if they are required, because they aren't (you didn't add the class "required" to them), but it does check if the value (the default values ,"Email" and "URL") entered is an e-mailaddress and if the other is a valid url.
To solve your problem, you should place an "onsubmit" on your form, which removes the default values from the e-mail and url input fields.
You're creating a new method for "name" and "comment", which is bad practice... You shouldn't create new methodes for the thing you're trying to achieve... As said a few lines above, you should place an onsubmit on the form which removes the default values of all your fields. If however an error should occur, then the default value would be removed from these fields. You can overcome that by storing the default values in an array on page load, for example (there are a lot of other options).
I see that you aren't using HTML5, if you were, you could have used the "placeholder"-attribute. EVenthough not every browser supports it, you could recreate the same type of behaviour.
I believe I've given you enough information in regards to the problem you're having. If you run into any more issues, feel free to post them here.