Forget the defines. Using IDE 1.0.2 you can make it work. Example:
HardwareSerial & lcd = Serial;
// function prototype
template<class T>
void MyLCD(byte col, byte row, T t);
// function definition
template<class T>
void MyLCD(byte col, byte row, T t)
{
// lcd.setCursor(col,row);
lcd.print(t);
}
void setup () { }
void loop () { }
That compiles without errors. I simulated the lcd class with a reference to HardwareSerial, but that's not important right now.
The important thing is to prototype the templated function as I did up there. Then the compiler won't generate another prototype in the wrong place.