Here is my snippet to declare views templates stored in the "template" folder of my "custom_module":

	/**
	 * Implements hook_theme_registry_alter().
	 */
	function custom_module_theme_registry_alter(&$theme_registry) {
	  $extension   = '.tpl.php';
	  $module_path = drupal_get_path('module', 'custom_module');
	  $files       = file_scan_directory($module_path . '/templates', '/' . preg_quote($extension) . '$/');

	  foreach ($files as $file) {
		$template = drupal_basename($file->filename, $extension);
		$theme    = str_replace('-', '_', $template);
		list($base_theme, $specific) = explode('__', $theme, 2);

		// Don't override base theme.
		if (!empty($specific) && isset($theme_registry[$base_theme])) {
		  $theme_info = array(
			'template'   => $template,
			'path'       => drupal_dirname($file->uri),
			'variables'  => $theme_registry[$base_theme]['variables'],
			'base hook'  => $base_theme,
			// Other available value: theme_engine.
			'type'       => 'module',
			'theme path' => $module_path,
		  );

		  $theme_registry[$theme] = $theme_info;
		}
	  }
	}

You should be easily able to fork it override an existing theme instead of adding a new one.
Hope it helps someone.