There were 'fake' memory cards being sold, they were labelled as 2Gb (or whatever size) and were actually only 256Mb.
The size comes up correctly in windows, but once it had been filled past the 256Mb mark, corruption would occur, as it was writing over what was already there.
It could be because of that.
Did you buy it from a reputable seller?