Since they sent the transaction before their wallet was fully synchronized, their wallet wouldn't have known about all the unsynchronized transactions. Therefore, in the transaction being sent to you, it probably spent outputs that it thought were unspent, but that were actually already spent in the part of the blockchain that it hadn't yet processed. Then later, when it finally processed those other transactions, it likely became "conflicted" since it discovered that it tried to spend the same outputs twice.
If your friend runs their wallet with the -zapwallettxes command line option, it will "forget" all the transactions that it has built, and then it will re-scan the entire blockchain to rebuild the valid list of confirmed transactions that have been sent to and from that wallet. When the re-scan is complete, they should see the coins are no longer "gone" (or if they are gone, then they should have the transaction history to see where the coins actually went).
If your friend is uncomfortable with running zapwallettxes, can you perhaps get your friend to supply us with the output after running the following command in the console:
Where txid is the transaction hash that their wallet says they sent to you?
That information should be enough to determine what outputs the wallet attempted to spend and why it was unable to do so.