Question: I am getting a very strange client side javascript error when using asp.net ajax tool kit.

I am using user controls with a timer inside of an update panel to make call backs to the server
the error is Type Sys.UI.\_Timer has already been registered

I can't recreate the issue at all when debugging the site localy or if the site is published on my machine, The error only happens when the site is published to our QA machine and only happens in IE and only happens on 2 out of the 6 machines we have used to access it.

Answer: 
At the public boundary of your component, you're always going to have to do data validation.

For internal methods, `assert`ing that the values passed are correct is better.

Returning null is something that it's better to avoid if you can. Either fail then and there to indicate that there is an error upstream of you (internal case) or return an empty or default object if there is such a thing available (public case).
Only check-null-return-null if that makes sense for your application. It may be that returning null simply causes problems for the client code, which doesn't expect a null back. It may be that there's no sensible return value in response to bad input, in which case use exceptions.

As to whether or not you should check the arguments, that depends on who's using that function. if it's a private function, it may be overkill to check. If it's a public API function, you absolutely should check.