Ok so I solved two of the problems that I asked.
I called my page list.php and added after the pageheader line
if (!USER_ID) cpg_die(ERROR, 'You need to login/register to access this page', __FILE__, __LINE__);
to only let user/admin view it.
Then to add a link to the conact list page, I did something very basic...and my question is if there's a better way to do this.
Basically in my theme.php I searched for
<td><img name="button1_r1_c3" src="themes/rainy_day/images/button1_r1_c3.gif" width="5" height="25" border="0" id="button1_r1_c3" alt="" /></td>
<td><img name="spacer" src="images/spacer.gif" width="5" height="25" border="0" id="spacer" alt="" /></td>
<td><img name="button1_r1_c1" src="themes/rainy_day/images/button1_r1_c1.gif" width="5" height="25" border="0" id="button1_r1_c1" alt="" /></td>
<td background="themes/rainy_day/images/button1_r1_c2.gif">
<a href="{SEARCH_TGT}">{SEARCH_LNK}</a>
</td>
and added after it:
<td><img name="button1_r1_c3" src="themes/rainy_day/images/button1_r1_c3.gif" width="5" height="25" border="0" id="button1_r1_c3" alt="" /></td>
<td><img name="spacer" src="images/spacer.gif" width="5" height="25" border="0" id="spacer" alt="" /></td>
<td><img name="button1_r1_c1" src="themes/rainy_day/images/button1_r1_c1.gif" width="5" height="25" border="0" id="button1_r1_c1" alt="" /></td>
<td background="themes/rainy_day/images/button1_r1_c2.gif">
<a href="{CONTACTS_TGT}">{CONTACTS_LNK}</a>
</td>
then I searched for
'{SEARCH_TGT}' => "search.php",
'{SEARCH_LNK}' => $lang_main_menu['search_lnk'],
and added under that :
'{CONTACTS_TGT}' => "list.php",
'{CONTACTS_LNK}' => $lang_main_menu['contacts_lnk'],
Then in my english.php file I searched for 'search_lnk' => 'Search',
and added 'contacts_lnk' => 'Contacts',
under it.
It works nicely, however as I was expecting this would mean changing all the themes individually. Is there another way of going about it?