1) Yes it does. However, if you want to do some HTML formatting with it, you'd have to convert the newlines to <br>, but that's another story.
2) Personally, I would do that sort of validation client-side (JavaScript) to make it easier on the server as well as datatraffic.
Maybe someone else could come up with a nice regular expression which validates e-mail like /\w?.@\w?.\w?./ This can be done both in Javascript and in PHP and checks for a sequence of word-type characters (a..z0..9-_) followed by something ('.' is also allowed), then a @, some more word-type chars, a '.', more word-type chars and something. Haven't tested it, but I don't expect it to be far from the truth.
3) So the link from the banner on the other site is something like http://your.site/entrance.html?1234 ? One way is to extract the affID with Javascript and pass it to some hidden CGI script in that page, typically in the form of an image, which does some data storage and returns a transparent gif or whatever picture you want.
How you could do this:
<script>
// first, retrieve the affID with Javascript:
affID = location.search.substring(1,location.search.length);
// affID is now '1234'
// now get the count image
document.write('<img src="count.cgi?id='+affID+'">');
</script>
Hope this helps a bit