Quando chiedi in input un carattere, magari digiti 'c' ma premi anche invio, per cui rimane nel buffer di lettura anche il '\n' (che corrisponde a invio), e la seconda scanf legge quello.
codice:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char primo, secondo;
printf("scegli primo carattere: ");
scanf("%c", &primo);
while(getchar()!=10) // finchè non legge '\n' (che ha come valore 10)
; // non fa niente (ma non esce dal while)
printf("scegli secondo carattere: ");
scanf("%c", &secondo);
printf("primo: %c \n", primo);
printf("secondo: %c \n", secondo);
getchar();
}