A ver si me aclaro. Todo codigo php es redirigido a index.php, asi que para entendernos, siempre es como si llamases a index.php (incluso cuando llamas a /admin/archivo.php. Si es asi, es normal que desde index.php no tengas que poner los ../ en el getimagesize(), ya que es el acceso via sistema de ficheros.
asi que no veo tu problema. A no ser, claro esta, que no entiendas porque en el HTML generado para admin/archivo.php tienes que poner ese ../ . Si es eso, es muy sencillo. Ese html es interpretado por el navegador, no por tu php. Para tu navegador estas en el directorio sitio.com/admin/ , asi que para indicar sitio.com/temas tienes que poner el ../ . El navegador solo coge lo que aparece en la barra de direcciones y le añade el src.
Son dos sistemas de referencia distintos usados por 2 programas distintos: PHP usa el sistema de ficheros del sistema operativo (/home/usuario/html/...), mientras que el navegador (HTML) usa las URLs (
http://sitio.com/admin/archivo.php).