I keep my FLACs and MP3s in exactly parallel directory structures, and have a little script (actually Mike wrote it) which runs over the two trees, encoding any FLACs which don't have corresponding MP3s, and any time the FLAC is newer than the MP3, re-copying the tags.

The structures go "Artists/artist/album/NN title.ext" for studio and live albums (with multi-disc albums numbered as if they came from one gigantic disc), and "Artists/artist/title.ext" for stuff from singles, greatest hitses, and compilations (and which I don't already have the exact same version of on an album). Compilations themselves are represented as playlists, "Compilations/title.m3u", which point to their songs wherever those live in the main Artists hierarchy. The only exception to this is continuous-mix CDs such as 2 Many DJs or DJ Yoda, which (as they only make sense played as a whole) live separately in "Mixed/cdname/NN title.mp3".

As for character set, I tend to use proper quotes (U+2019 etc) so they aren't an issue; likewise the program I use for naming a file based on its tags uses fraction slash (U+2044) for slash, which is sort of cheating but looks OK. When I'm looking at them over Samba I still have trouble with colons and question marks, but by and large I just live with the mangled short-names for those tracks and albums. (Though I have got a bug in against Samba, whereby it doesn't mangle Foo?.flac to the, still playable, Fwhatever.FLA but to an extensionless file, despite the documentation saying it gets it right.) I think you need Samba 3.x for this; Samba 2.x doesn't present UTF-8 filenames to Unicode clients properly.

Peter