What is the root url needed for extension pages?
The URL formula is different for each CMS. The most accurate approach is to open a CiviCRM page and examine its URL. For example, I logged into the public demo sites for v4.5, navigated to "Contributions => Dashboard", and the URL of each page:


WordPress: http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/contribute&amp;reset=1
Drupal: http://d45.demo.civicrm.org/civicrm/contribute?reset=1
Joomla: http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&amp;task=civicrm/contribute&amp;reset=1


All of these are displaying the same logical page, which is canonically identified as "civicrm/contribute". However, each CMS requires a slightly different prefix to it. You can construct URLs for other pages by swapping the "civicrm/contribute" part. So csvimporter's page (if it were installed) would be:


WordPress: http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/csvimporter/import&amp;reset=1
Drupal: http://d45.demo.civicrm.org/civicrm/csvimporter/import?reset=1
Joomla: http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&amp;task=civicrm/csvimporter/import&amp;reset=1


It doesn't seem like a good idea to ask an extension-user to figure out this URL by themselves. Instead, the extension should compute the URL and display it. This can be done with CRM_Utils_System::url() -- e.g. "CRM_Utils_System::url('civicrm/csvimporter/import')".