You can overload it for your own datatypes so it behaves like pow... however the question if that's a good idea I would answer with no. A C++ programmer would be used to ^ meaning XOR, so this might affect readability - especially with stuff like:
1 2 3 4
myInt a(12);
int b = 5;
a^b; //equals a pow 5
b^a; //is this b XOR a or b pow a?
even if you're used to use ^ as pow, I would advice you against it. But hey, you're the one who'll have to decide in the end, so if you like it better that way I won't stop you.
No, you can only overload already existing operators, not create new ones.
(HOWEVER C++0x allows you to create new suffixes for literals - this doesn't really help here, but it's something you might wanna keep in mind for the future).