En el primer código cambia:
while( !feof(pArchivo
) ){ fscanf(pArchivo
,"%d\t%[^\n]\t%lf",&orden
,nombre
,&salario
); printf(" %d\t%-10s\t%lf",orden
,nombre
,salario
); }
por
fscanf(pArchivo
,"%d\t%30[^\t]\t%lf",&orden
,nombre
,&salario
); while( !feof(pArchivo
) ){ printf(" %d\t%-10s\t%0.2lf\n",orden
,nombre
,salario
); fscanf(pArchivo
,"%d\t%30[^\t]\t%lf",&orden
,nombre
,&salario
); }
La cadena de control de fscanf ha cambiado nombre ahora recibirá un máximo de 30 caracteres, además se detendrá la lectura de nombre cuándo encuentre una tabulación (que es tu separador), no el carácter de nueva línea (que no puede existir en esa posición. También se cambia el orden de las lecturas en el buche, así no imprimirás por duplicado la última lectura.