creo recordar que cuando hice eso sql server me devolvía un date time con milisegundos, lo que echaba a perder el date.
la cuestión es que debes convertir la fecha en timestamp para leerla con date()
Código PHP:
$fecha_bd = substr($fecha_bd,0,19);/*le quito a la fecha 2006-09-21 16:15:52.000 el .000 porque genera error (SQL Server)*/
$timestamp = strtotime($fecha_bd); //convierto la cadena string en una variable de tiempo (date) timestamp
$fecha_final = date("d/m/Y",$timestamp);
y listo!