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