Mike Nifong made a complete, unqualified apology Thursday during a preliminary hearing to determine whether he should face criminal contempt charges.