Potresti semplificarlo un poco, modificandolo così :
codice:
#include <stdlib.h>   /* librerie standard */
#include <stdio.h>    /* funzioni printf, scanf */
#include <string.h>   /* librerie delle string */
#define LUNGHEZZA 50  /* lunghezza massima vettore */
/* Dichiarazioni Funzioni */
void toglispazi(char nuovo[], char vecchio[]);    /*toglie spazi in una stringa*/
int palindroma(char nuovo[], int n);

/* Inizio del Main */
int main(void)
{
	char vettore_input[LUNGHEZZA];/*input, vettore inserito dall utente che può comprendere spazi*/
	char parola[LUNGHEZZA];       /*variabile di programma, il contenuto è copiato da vettore_input senza gli spazi*/

	printf("Inserisci una parola o una frase senza usare segni di punteggiatura:\n\n---> "); /* inserimento */
	fgets( vettore_input, LUNGHEZZA, stdin);

	printf("\nLa stringa inserita e'->\n");
	printf("%s\n", vettore_input);              /* stampa a video */

	toglispazi(parola, vettore_input);          /* chiamata funzione - toglie eventuali spazi nella stringa*/
	printf("\nLa stringa senza spazi e'->\n");
	printf("%s\n", parola);                     /* stampa a video */

	if (palindroma(parola, strlen(parola))==0)
		printf("\nLa stringa non e' palindroma\n\n");
	else
		printf("\nLa stringa e' palindroma\n\n");

	system("pause");
	return(0);                                    /* fine del main */
}

/* funzione calcola - togli spazi */
void toglispazi(char nuovo[], char vecchio[])
{
	int i, j=0, len=strlen(vecchio); /* ciclo di conteggio */
	/* non considero NESSUNO dei caratteri 'speciali' */
	for(i=0; i<len; ++i)
		if((vecchio[i]>='0' && vecchio[i]<='9') ||
		   (vecchio[i]>='A' && vecchio[i]<='Z') ||
		   (vecchio[i]>='a' && vecchio[i]<='z') ) 
			nuovo[j++]=vecchio[i];
	nuovo[j]='\0';
}

int palindroma(char *nuovo, int n)
{
	if (n <= 1) return 1;
	if (*nuovo != *(nuovo+n-1)) return 0;
	return(palindroma(nuovo+1, n-2));
}