Are you trying to seperate the implementation from the header where you declare the operator overload? If so, that isn't going to be happy.
Unless your compiler supports the export keyword, and MSVC doesn't, then you can't put the definition of a template in a separate source file without explicit instantiation for specific types. Without explicit instantiation, the complete definition of the template needs to be available at point of instantiation, which means, in effect, that the definition needs to go into the header. (Or an inline file of some sort, etc.)
For more details see these articles:
"Export" Restrictions, Part 1 and
"Export" Restrictions, Part 2.
And before petewood gets to this thread, I suppose I'll post
this link for him. It's an article entitled "Instantiator: A (Mostly) Portable Framework for Separate Compilation of Templates"
If that isn't the problem, then you should give more details on what exact errors you are getting and possibly a more complete code example.