Custom Timer Jobs can be extremely useful. I recently created one to import data manually from an external data source.  A few things that you need to know about Custom Timer Jobs...
<ol>
	<li>They cannot be Sandbox Solutions</li>
	<li>They must be deployed via a Feature (Farm, Web App, or Site)</li>
	<li>They can be scheduled in code or via Powershell</li>
</ol>
<div>In Visual Studio 2010, there is a template for creating Custom Timer Jobs, which makes this process much easier!</div>