My hair is long and voluminous, wavy/wurly/curly depending on the day, and I have bangs and volume around my face. I wear it up often, again with volume as I can. Tight hats aren't great because the flattening usually affects the bangs, and are usually incompatible with updos. Oh, and I have a big head.
For cold weather, order of preference:
Hair bands/vintage "skating caps" (knitted rectangle about 3" x 12" with ties)
Loose berets (only found knitted ones so far)
Snug berets (standard woolen ones)
Ear muffs (still feel awkward to me)
Wool felt fedora (think Indiana Jones) (mostly for damp weather but can be worn over a hair band)
Hair can usually fit inside the berets and sometimes the fedora, depending on how I need to angle it for the wind. I always wear snug berets angled, so the band cuts across the part in my bangs. It does leave one ear exposed! For bangs with the fedora, I usually brush them upward and pull the band down over my forehead. If I get warm enough or wear it long enough they'll still get flattened weirdly, but usually they're okay for a half hour.
For hot weather I only wear straw or fake straw fedoras. Again, think Indiana Jones with a traditional bash and wide brim, and not floppy.