There's a time window at the beginning of a frame sent on a half-duplex link when collisions may happen. That's also why there's a minimum frame size - collisions need to be detected reliably and the sender needs to be aware. The general problem with late collisions or undersized frames is that some nodes detect a collision while others don't. If the sender doesn't detect the collision the frame is lost.
Late collisions are those that happen after that time window at the beginning has passed, when there mustn't be any collision any more. They are a sign of some misdesign or malfunction - overlong segments, too many chained repeaters, duplex mismatches, NIC problem.
With a duplex mismatch - one link partner using half-duplex, the other using full-duplex mode - the full-duplex side (FDX) starts sending at any time it's got data ready, without checking the medium for any traffic or a collision (there can be neither in FDX). Depending on what the half-duplex side (HDX) is currently doing, there are different outcomes:
- HDX is idle: frame is received correctly
- HDX has just started sending: it detects a (normal) collision and aborts transmission - FDX receives a short frame (a runt) with FCS error
- HDX has been transmitting more than 512 bits into the frame: it detects a late collision and aborts transmission - FDX detects an incomplete frame (not a runt) with FCS error
You should note that half-duplex mode is all but obsolete. It originated from inherently half-duplex coax cabling and obsolete repeater hubs. For the last two decades, business networks have been using switched networks in full-duplex mode throughout.
Duplex mismatches can only happen when you force a specific mode on a port (e.g. 100 Mbit/s, full duplex), disabling Auto Negotiation. That makes the link partner fall back to half-duplex mode. Gigabit Ethernet and faster variants use full duplex exclusively (half duplex was standardized for GbE but isn't supported in real hardware) and Auto Negotiation is mandatory.