How to build a reusable configurable form How could I build a reusable form that can be reconfigured for each location in which it is used? It would have the same fields, however select list values would be different depending on what the user thinks it should contain based on its location in the site.

Locations include blocks and panels across many pages and sites, and potentially 
multiple locations on the same page.
In a custom module, use the FormAPI to build your form and create variables to store your #options for example (in the case you mentioned of select lists that change). Set the variable according to the context and you should be good to go.

/**
 * Implements hook_form();
 */
function mymodule_form($form, &amp;$form_state) {

  // For inspecting information about entity and id:
  kpr(arg(0));
  kpr(arg(1));

  $form['selected'] = array(
    '#type' =&gt; 'select',
    '#title' =&gt; t('Selected'),
    '#options' =&gt; $variable_according_to_context,
    '#default_value' =&gt; $category['selected'],
    '#description' =&gt; t('Varies according to context.'),
  return $form;
}


The $variable_according_to_context will hold the options of your select list. You can set this variable to different options according to the context you are in. You can use arg(0) or arg(1) to get the node or entity type the form is in. I hope that was clear enough on how I would approach this.