se debe a una mala estructura (y entendimiento) del arreglo...
   Código PHP:
    <?php
$producto["modulo"]["opciones"]=array(
array("titulo"=>"Descripcion"),
array("titulo"=>"Ventajas"),
array("titulo"=>"Aplicaciones"),
array("titulo"=>"Instrucciones de uso"),
array("titulo"=>"Especificaciones técnicas"),
array("titulo"=>"Solicitud de preosupuesto"),
array("titulo"=>"Modo de colocación")
);
echo $producto['modulo']['opciones'][2]['titulo'];
// esto imprimiria.... Aplicaciones
?>    
  ahora si, podemos asignar correctamente el arreglo... ya que como estabas tratando la cadena como tal, el indice cero... es, o era... el primer carácter! 
osea, estabas leyendo bien el arreglo... pero, el elemento no era propiamente un arreglo, ojo 
espero me haya explicado, suerte...  
PDTA: ahora, tu ejemplo... debería funcionar