Credo di aver risolto in questo modo.

In pratica se c'è il file A eseguo una serie di controlli, altrimenti altri.

Codice PHP:
if ( $conf->isFile() ) // Se esiste il file di configurazione
{
        if ( 
$conf->getSize() < 10 // Se esiste il file di configurazione controllo se è inferiore a 10
        
{
                if ( 
$inst->isFile() ) // Se il file di configurazione esiste ed è inferiore a 10 controllo se esiste il file di setup
                
{
                        
header 'Location: ' INSTALLATION );
                        exit();
                } else {
                        echo 
"No configuration file found and no installation code available. Exiting...";
                        exit();
                }
        
// Altrimenti se il file di configurazione è superiore ai 10kb controllo se c'è il file di setup
        
} elseif  ( $inst->isFile() ) {
                echo 
"Configuration file and installation file are present. Exiting...";
                exit();
                
        }
        
} else {

        
// Qualora non esistesse il file di configurazione verifico che esista quello di installazione
        
if ( $inst->isFile() )
        {
                echo 
"Il file di installazione c'è e lo lancio";
                exit();
        } else {
                echo 
"il file di installazione non c'è e vado in errore'";
                exit();
        }


In pratica blindo subito un controllo. O il file A c'è e quindi avviene un controllo sulla sua dimensione e di conseguenze sulla presenza o meno del file B o non c'è e controllo subito la presenza del file B e mi regolo di conseguenza.

Che ne pensate ? Manca di eleganza ? Scritto in modo pessimo ?

Grazie