We haven't managed to get @font-face working on OS/2. Strategy would be to go through the Thebes code to determine how that is done on Linux (so how gfxPangoFonts and/or gfxFT2Fonts are tied to gfxUserFontSet) and add similar code for OS/2 (in gfxOS2Fonts). In the past I thought that we would need to change the FontConfig port that we use but I think it now works differently on Linux (not going through FC). (I mark this bug as major as this is the main FF 3.5 feature that we don't support yet.)
I'm working on it...
I worked on this for a while, copying Linux code I didn't understand into OS/2 code I didn't understand. I got to to compile OK but never got it to work. Peter, since you're the only one who knows the font code, I don't think @font-face will happen without your involvement.
I guess that means we'll never get it implemented. My time is so limited right now (and I don't see that changing for the better any time soon) that I fear I will never look at this code again. But then, I haven't heard any strong complaints from OS/2 users yet (as opposed to printing support), so I don't think this is so urgent anyway.
At some point I posted this to the newsgroup: I don't think downloaded fonts should be added to the configuration. In principle, all that should be needed is to FT_New_Memory_Face() the font from some cache location in RAM. Like here http://hg.mozilla.org/mozilla-central/annotate/6673479e68ee/gfx/thebes/src/gfxFT2Fonts.cpp#l89 in CreateFontEntry() (or NewFontEntry() for PangoFonts) which I believe is then used in the platform's LookupLocalFont() or MakePlatformFont().  I meant: the configuration created by the FontConfig OS/2 port (part of mzfntcfgft). I have no idea if this is still relevant, but I thought I should add this here, for reference.
Opera has some nice testcases; most of them work with Gecko on Win32. http://dev.opera.com/articles/view/seven-web-fonts-showcases/
Going the Pango route for font display allows @font-face to work