The problem is the evil marketroids at hard drive and memory card manufacturers. 2 GB = 2 x 1024 x 1024 x 1024 bytes, or 2147483648 bytes. This is the definition used by everyone on the planet (including your phone manufacturer) except marketroids. Marketroids say 2GB = 2 x 1000 x 1000 x 1000 = 2000000000 bytes. If you look at the fine print on your memory card's documentation, you will probably find this. So you have inserted a 2000000000 byte card into a device that has the correct definition of GB: 2147483648 bytes. And the phone correctly reports that your card is smaller than 2GB.
This is sort of like someone selling a quad band phone with fine print that says "quad means 3".