That is the point. Custom bitcoin clients are NOT easy. Unless you know what you are doing you probably should NOT be making a custom bitcoin client.
As much money as MtGox has made over the last four years they could have hired someone who knew what they were doing but install hack together a client which is non compliant with the reference implementation in at least half a dozen areas (who knows how many others as the source code isn't public so we can only observe the fail from the outside). This is the same MtGox which has no development server and just makes changes to production live so they decided getting the implementation of a mission critical component which involves the transfer of money, "close enough" was an acceptable standard.
A compliant client should not:
a) violate spam rules
b) pay less than the min mandatory fee (well a business client where users expect timely payments shouldn't)
c) send immature (less than 120 confirmations) newly generated coins
d) double spend its own "coins" (use outputs which were already spent in a prior tx)
e) use non-canonical signatures
f) rely only on tx-id as absolute proof on if a payment has been made or not
The "Gox Special" client did all of those, and who know what else. It would be like building a jet airline by copying a photo of a jet you once saw, and being surprised when someone dies because "well it looks kinda like a jet, the engines are pointing the right way, and it has some wings and stuff". Who possibly could imagine that slapping together some random parts so it looks like a jet wouldn't actually be a functional, safe jet?
Like cryptography, if you "roll your own" bitcoin node, you have to get it EXACTLY RIGHT. Not kinda right, not mostly right, not hey it does sometimes push tx the network doesn't reject but absolutely right down to every single detail. Most entities (companies and individuals) should not attempt that. They should build off existing proven clients.