Some situations where the request is lost:
- Power is lost in the mobile unit
- Mobile unit loses contact with the net (radio waves can't reach the destination)
- Programming error/memory-fault at the mobile device
- Too many mobile devices try to send data at the same time
- External interference on the radio-link
- Power lost in network infrastructure
- Cables mistakenly cut by workers
- Fire, flooding, earthquake etc...
And then there are all the problems at the server end, like out of memory, timeouts of the request etc...
If possible, try to split the information in smaller segments. If something goes wrong, there is less information that has to be resent.
Updated 2011-01-27:
I might sound a bit pessimistic when I say that there's too many things that can go wrong and if anything can go wrong, it will.
On the transmitters side it's quite easy to check if the transmission was successful, if the server sends some sort of acknowledgment. It could be sent as the answer of the transfer request or by a separate query.
Depending on what you're using at the server side, you might be able to detect if the connection was lost (and all the data of that request was probably lost too). My opinion is that it's the senders responsibility to check if the transmission was successful, and resend it if it wasn't.
I don't know what kind of data you have, but I'm pretty sure it is possible to split it into smaller chunks. I can however not decide if it's desirable or not. But if you have mobile devices and it takes a long time to transfer the data, it probably is.