How do you find out which module is causing a redirect?
If we're talking Drupal redirects (i.e. drupal_goto calls), the Devel module could help out here. In its settings it has a Display redirection page option that halts redirection for inspection. 

You can use this in conjunction with a hook_drupal_goto_alter() invocation to dump a stack trace on the redirection halt page to find the origin of the drupal_goto call.

function MYMODULE_drupal_goto_alter(&amp;$path, &amp;$options, &amp;$http_response_code) {
  ddebug_backtrace();
}