How to force users to choose a forum when creating new thread?
Bit late, but someone else might find this useful. 

My method was to use my theme template.php in D7 to modify the form:


Add an entry to the list of forums (I only had a simple, non-hierachical list) e.g.    $form['taxonomy_forums']['und']['#options']['0'] = '-choose a forum-';
Add a validation function to the form. $form['#validate'][] = 'cirqasupport_validate_forum_area';
In the validation function test the 'tid' being returned and if it was zero return an error on the forum field.


For example, add the following to template.php for your theme (or it could be done in a new module instead):

function mytheme_form_forum_node_form_alter(&amp;$form, &amp;$form_state){
   // force user to select a forum by putting a blank one at the top
   // and then checking that it is not what gets returned
   $form['taxonomy_forums']['und']['#options']['0'] = '-choose a forum-';
   $form['#validate'][] = 'mytheme_validate_forum_area';
}


and the validation function:

function mytheme_validate_forum_area($form, &amp;$form_state){
   // A taxonomy_forum tid of 0 means they haven't selected one
   if ($form_state['values']['taxonomy_forums']['und'][0]['tid'] == '0')
   form_set_error('taxonomy_forums', t('You must select a forum.'));
}


The only problem I found is that the blank forum went in at the bottom of the sorted list no matter what number I gave it or how it was named.