Besides intrusion, good things are also possible with client side scripting. Client side scripting means that the browser runs the script. However, due to a lot of abuse of this form of scripting there are visitors who have this option disabled. So make sure that most functionality and preferable all is available to those visitors. Also there are quite some differences between browsers regarding what is supported and how. Quite often visitors are treated on error box after error box asking them if they want to debug the page. This can't be what is intended. So test and test. Some useful scripting applications are discussed below.
Without server side scripting the validation of forms has to take place on the server. Meaning that the visitor has to complete the form and press the submit button. At the server the values are checked and when one or more entries are not valid feedback on the error(s) is given to the visitor. This can result in a lot of attempts which take considerable time. Thanks to client side scripting it is possible to check user input before it is submitted and give direct feedback to the visitor. However never ever trust what you finally receive server side. See the article on forms for more information.
With client side scripting it is possible to update parts of the page. For example is possible to update a drop down menu based on a previous choice. Another example is extending a table with new entries. Note however when this dynamic updating is part of a form that it must be clear to the visitor that the submit button has to be pressed. Otherwise the visitor might get the impression since the page is updated that the actual change on the server has taken place too.
Some other applications are hovering, pull down navigation menus, preloading of images. I love simple user interfaces so I would not use most of these applications. Preloading of images can cause extra traffic. You can't predict what the user is going to do next. Also due to the way most browsers work it is not possible to force a download order because several connections are made at the same time each downloading objects.
Some effects, like hovering, pull down menus, etc. can be achieved using a cascading style sheet (CSS).