ryarbrou
You should always test, especially for malicious input, so I'd go with that as a very solid approach.
One thing that I like to do is to model the data flow (from a security perspective), document it and explain what action has been taken to protect the application/data from being compromised. This becomes doubly important as you move forward into the world of AJAX, where data might be being downloaded via Web Services without going via the normal, server-side page presentation controls.
But there are a number of things that you should do, if possible:
1. Make sure that ASP.NET's request validation is turned on. If the user enters malicious code an exception will occur and you can then ask them (politely) not to enter garbage.
2. Use all appropriate validation controls. RangeValidation, CompareValidator and RegularExpressionValidator are awesome, remembering that they won't necessarily check for empty fields. Always use them where you can.
3. Encoding all input that you put into a database might not be desirable. Just make a note of the fact (in your data dictionary, perhaps) what has and has not been encoded. That way, other developers will know.
4. Controversial, I know, but consider banning things like Response.Write*, arbitrary <%# %> blocks and also enforce the use of server-side controls.
* There are a few cases where you might need to use this, but document the steps that you've taken to protect the data/app and explain why it had to be used.
But thorough security reviews (with other developers) and solid testing are the key to this.