Craig,
i think the reason is:
in your first example (that works) :contidions is Array, while in your
second it is a String (at least it looks like that form the code you
provided) so it took it as an SQL WHERE fragment and not as an Array
there is no mystery to it and hope this helps
regards
Andrej