"Maybe borrow a feature from Stack Overflow [or Get Satisfaction or Desk.com or Uservoice], which presents similar-sounding stories before posting? Some client-side JS which pulls the page, heuristically picks some "interesting" words, and runs them through search.yc?"
Here is the perfect and best of both worlds solution to prevent duplicates:
Step 1: (Algorithm) Automatically check the title (and maybe other metadata like keywords) of his submission against similar existing content on HN. Present these results to the user.
Step 2: (Human) Let the user's intelligence decide if his submission to HN looks like a duplicate of another user or not.
(a) http://techcrunch.com/2013/07/16/estimote-creator-talks-abou...
(b) http://techcrunch.com/2013/07/16/estimote-creator-talks-abou...
And if he doesn't, then he doesn't.