Hola,
También tengo problemas con eso :(, no se que pasa. 
He cambiado cadenas por 1 caracter. 
Aquí el codigo:  
Código:
 #include <stdio.h>
#include <stdlib.h>
/*
La compañía que gestiona la autopista ha decidido cambiar las tarifas de peaje. Estas tarifas
dependen del tipo de vehículo (camión o automóvil) que desee utilizar la autopista, del número de
pasajeros que lleve y de la hora del día: en las horas de alta congestión los automóviles con tres
pasajeros o más no pagan peaje, los otros pagan 30 euros, los camiones pagan 50 euros; en las
horas menos congestionadas el peaje para los automóviles es de 25 euros y para los camiones es
de 30 euros independientemente del número de pasajeros. Escriba un programa que leyendo el
tipo de vehículo, si la hora es de alta congestión o no y el número de pasajeros, calcule la tarifa
que le debe cobrar a un vehículo.
Datos de entrada: Tipo de vehículo (Camión ó Automóvil), Hora de alta congestión o no, Número de pasajeros
Datos de salida: Tarifa a cobrar
*/
int main()
{
    //Declaración de variables
    char lcTipoVehiculo, lcHoraAlta;
    int liNumeroPasajeros;
    //Entrada de datos
    printf("Ingrese tipo de veh%cculo (Cami%cn = C/Autom%cvil = A): ", 161, 162, 162, 162);
    scanf("%s", &lcTipoVehiculo);
    printf("Hora de alta congesti%cn (S/N): ", 162, 162);
    scanf("%s", &lcHoraAlta);
    printf("N%cmero de pasajeros: ", 163);
    scanf("%d", &liNumeroPasajeros);
    //Procesamiento
    if (lcTipoVehiculo == 'A' || lcTipoVehiculo == 'a')
    {
        if (lcHoraAlta == 'S' || lcHoraAlta == 's')
        {
            if (liNumeroPasajeros >= 3)
            {
                printf("\nN%c paga peaje.\n", 162); //Salida de datos
            }
            else
                printf("\nTarifa: EUR$30.\n"); //Salida de datos
        }
        else
            printf("\nTarifa: EUR$25.\n"); //Salida de datos
    }
    else if (lcTipoVehiculo == 'C' || lcTipoVehiculo == 'c')
    {
        if (lcHoraAlta == 'S' || lcHoraAlta == 's')
        {
            if (liNumeroPasajeros >= 3)
            {
                printf("\nN%c paga peaje.\n", 162); //Salida de datos
            }
            else
                printf("\nTarifa: EUR$50.\n"); //Salida de datos
        }
        else
            printf("\nTarifa: EUR$30.\n"); //Salida de datos
    }
    return 0;
}
  También he eliminado todas las condiciones en un solo IF como indicaste. 
Pero, sigo teniendo el mismo problema. Ingresas todos los datos y el programa se finaliza, no lee ninguna condicion. 
Nota: usé %s y no %c porque al ingresar los datos, de la segunda pregunta saltaba a la tercera pregunta. 
Espero poder solucionar esto y gracias a todos los que me han ayudado. 
Esperare su respuesta.