In reply to 1poundSOCKS:
In the vast majority of cases, websites that take user input through typing or do something on a mouseover or click are running Javascript or some other programming language.
In HTML you can insert a line that says "run this bit of JavaScript here", but that's a static instruction, not something that changes on user input. It is the JavaScript that takes the user input, does the processing and returns something specific to the input. The HTML just makes it look pretty.
In many cases, the output of a JavaScript is to choose which page to direct the browser to next, or even to write some custom HTML which will be displayed as the next page. This is different to a link in pure HTML, which is a static address that can't be changed by user action.
It is true that you can put links in pure HTML, but those are static links, they can't be changed by taking in data from the user. They are essentially just like an address and the instructions that tell the browser what to do with it are encoded in the browser rather than in the HTML.
It is exceedingly rare to see pure HTML pages now - when you do they look a lot like this:
http://www.codedread.com/testbed/pure-html.html
I have to admit, I haven't used HTML5 much, so that might blur the boundaries more.
Obviously wintertree has shown above that HTML can be used more dynamically than I have just described - but those cases are pretty obscure.