El problema es que como lo tienes estás haciendo que la variable num se vuelva cero, por lo tanto al final cuando haces num%10 es como si hicieras 0%10, usa otra variable para almacenar una copia del valor de num y usa esa variable en el ciclo:
Código:
void digIzq(int num) {
int cd=0,e,u,digIzq, num2;
num2=num;
do{num2=num2/10;
cd++;
}while(num2>0);
e=cd-1;
u=(int)Math.pow(10,e);
digIzq = num%u;
imprimir("DIGITO DE LA IZQUIERDA: "+digIzq);}
Saludos