custom.module vs template.php This is a not-so-targeted question but I can't find any good information on this.

When is it considered correct practice to put code inside your template.php file and when to implement it in a module?

I mean in my current example I need to call hook_preprocess_node and inside perform a drupal_get_form and render that form. I've put my logic inside template.php.

Is that correct? If not, can you give me a short list of DOS and DONTS regarding the issue?
There are two things I try to keep in mind when making this decision.

Is this a functional feature, or a purely visual one?  Functional components go in modules.  Purely visual ones go in the theme.

What happens if I alter or radically change the theme down the road and/or allow multiple themes for my site?  If you don't want to replicate the feature, then it should go in a module.

Drupal does make it easy to intertwine content, business logic, and presentation.  For the long term maintainability of a site, you really need to be careful when you implement things.

A good rule of thumb is that a theme should not need to know about IDs ($nid, $uid, $tid, etc) for anything, and should only need to know machine names to alter visual appearance.

In your case, adding a form to a node is a functional change, and I would really put that in a module.