Solucionado. Explico la solución para quien pueda ayudar:
Por lo visto, la clase (el por qué en mi caso sí, y en otros no, no lo sé) mssql de PHP envía una cabecera Transact-SQL indicando el formato de la fecha como mm/dd/yyyy:
de este modo, aunque se tenga la base de datos en castellano (y por la tanto la fecha en formato dd/mm/yyyy), para la conexión establecida SQL Server considerará la fecha como mm/dd/yyyy.
En teoría, poniendo en el php.ini el parámetro mssql.datetimeconvert igual a 0 (0 u Off) sería suficiente, pero en mi caso no ha funcionado (la clase envía la misma cabecera con el parámetro activo o inactivo).
Para solucionarlo, cada query que se envíe debe llevar la cabecera siguiente:
De ese modo se machaca el valor establecido por la clase mssql.
El resultado sería:
Código PHP:
$query = "set dateformat dmy\n"
$query .= "select * from tabla where campofecha > '15/12/2007'"
Saludos.