Bien, ahora te entiendo, te refieres a no esperar que la consulta te devuelva los registros de todo un día al comparar campo_fecha='2011-26-05 00:00:00.000' si se tienen guardado valores con una presición mayor, no es que el operador (=) sea ilegal en las fechas, el tema es contemplar que el tipo datetime tambien puede almacenar hora-minutos-segundos-milisegundos y hay tenerlo en cuenta al momento de comparar fechas.
En cualquier caso, una forma rápida de tener presición año-mes-dia es con
Código:
select dateadd(dd,0, datediff(dd,0, campo_fecha))
Pero como bien decías, si campo_fecha tiene un índice, es mucho más efeciente el between.
Saludos