Hola, te ayudaré en el 1º punto, porque en el 2º francamente te has enrollado como una persiana
En primer lugar, te aconsejo que dejes de nombrar a tus scripts "index1", "index2" y por el estilo. Dale nombres que los definan, como "login", "cabecera", etc
Es buena idea los de tener la parte privada igual que la pública pero con la capa de seguridad, yo te recomiendo que hagas un archivo que compruebe la sesión, por ejemplo, "seguridad.php":
Código PHP:
if (!$_SESSION["usuario"]) header("login.php)
...con todas las comprobaciones que quieras hacer. Este archivo sería invocado en la cabecera (supongo que tendrás un include con la cabecera o algo del estilo), pero IMPORTANTE, antes de generar ninguna salida, ya que las cabeceras (en este caso de redirección) deben ser enviadas por HTTP antes de la propia página. Es decir, si tienes un archivo "cabecera.php" más o menos así:
Código PHP:
<html><head><title>Empresa</title></head><body><div id="cabecera"></div>...
...que sería común para las páginas públicas y privadas, deberías modificarlo para que quedase:
Código PHP:
<?php if ($privado) include("seguridad.php") ?><html><head><title>Empresa</title></head><body><div id="cabecera"></div>...
De este modo mantienes común la cabecera para parte pública y privada, y cargas la capa de seguridad en las páginas que te interese. La comprobación de que estás en parte privada (if ($privado)) te lo dejo a ti

Compruébalo metiendo toda la parte privada en un directorio y verificando la URL, o como prefieras.
Y para el menú adicional de la parte privada, lo mismo. Si ese menú está en la cabecera, pongamos por caso, haces lo mismo:
Código PHP:
if ($privado) include("menu.php")
El secreto está en modularizar e intentar simplificar las relaciones entre los módulos. En este caso tenemos unos módulos para la parte restringida de la web, que se cargarán cuando a ti te interese.
Espero haberte ayudado.
Un saludo.
PD: intenta simplificar el punto 2, parece que estás complicando las operaciones más de lo necesario.