I think this isn’t really a Hugo issue, it’s more to do with how CSS interprets urls.
According to W3
Partial URLs are interpreted relative to the source of the style sheet, not relative to the document:
So I think if you do
src: url('./fonts/charter_regular-webfont.eot');
(i.e. starting urls with a dot) then the browswer will load the font files from a relative directory, rather than working a directory based on web root.