Hola,
efectivamente, la solución pasa por hacer un Cast al Variant (segundo parámetro) que pasabas a la función Pos en tu ejemplo.
Pero, por si alguien tiene interés, este problema (que aparece ya en Delphi 2009) no es por el tratamiento de las cadenas UNICODE.
De hecho, la llamada podría haberse realizado perfectamente de este modo:
Código Delphi
[-]if Pos(Column.FieldName, QAkg.SQL.Strings[QAkg.SQL.Count-2]) <> 0 then
El asunto, como bien explica Marco Cantú en su libro Delphi 2009 HandBook (pag. 213) es porque a partir de Delphi 2009 se controla, de forma más estricta, el paso de parámetros Variant a funciones que definen parámetros de un tipo concreto (no Variant).
En Delphi 2007 esta llamada podría haber dado un error en Runtime. Ahora, el error se produce en el momento de la compilación.
Si alguien tiene más interés, creo que lo justo es aconsejaos comprar el libro (que también está en castellano).
Saludos.