An SDCard is very much like a hard disk drive. Both in how it is made and how it is treated by the host. As such there are critical times where interrupting the communication to the SDCard can cause corruption.
To avoid problems it is advisable to finish all transaction before removing the SDCard. In a perfect situation all data will be flushed from the host's buffers (cache) and the files being accessed closed. So research the flush() and the close() function calls in the library you are using.
In order to accomplish the above, it is obvious the host device needs to be told the SDCard is about to be removed. In most cases this is accomplished using a switch (human interface) and some code to flush and close any open files.
All this said, often people pull SDCards with out any obvious problems. This is likely because SDCard transactions are fast and completed in fractions of a second. Also pulling an SDCard when periodically reading a file is far safer then when writing to a file or altering any information on the SDCard (for example the name of a file). If you can suffer the possibility of corruption, it may be that the added effort is not worth it. However if you stand lose a great deal, I would advise you to do some research into the best ways to avoid SDCard corruption.