All SD cards have occasional long latencies. There are a number of reasons such as wear leveling, pre-erasing large physical flash block, and more.
The SD spec allows occasional delays of up to 250 ms for SD/SDHC cards. Typical cards have around 100 ms max delay.
There is very little RAM buffer in SD cards to keep the cost low. You must design your application with very large buffers to accommodate these delays. I either use a RTOS to run multiple threads or capture data in an ISR.
There are several examples here
http://code.google.com/p/beta-lib/downloads/list. See AnalogIsrLogger20121219.zip, FreeRTOSBeta20130107.zip, and ChibiOS20130112.zip for examples.
There is no easy solution to this problem.
SD cards only perform well with large contiguous writes so preallocating a file helps. See the AnalogIsrLogger for this method.