1) should a host at least try to foresee a condiment would be wanted by the majority of guests? E.g roast beef and horseradish and attempt to provide it?
I think you should do your best with common pairings (e.g. baked potato/sour cream), but not beat yourself up over it if you miss. You never know what other people are used to, and you can't foresee everything (e.g. you're American and you invite a bunch of crazy Canucks who are used to ketchup on their mac and cheese).
2) Should a guest ask for the condiment if the host has forgotten it? Is this rude?
I wouldn't, personally, unless I knew the host well and it was really, really important as part of a dish. Peg Bracken says it's okay to ask for "the basics," but she goes on to list things like cutlery, napkins, salt and pepper, water... no condiments on her list, but the other etiquette writers might say different.
On a specific note, I wouldn't ask for ketchup if the host didn't provide it-- it's obviously not an uncommon condiment, but I've heard that asking for ketchup can be seen as an insult, and I'd rather do without than insult the host (unless he/she is a good friend/family member and I know where they stand). But that's me.
3) could a guest ask for an unusual condiment? Is this rude?
Unusual for the meal, or unusual in that a lot of people don't keep it in the house?
If the former, I'd say it's the same as question 2 with the caveat that if it's
really unusual (e.g. strawberry jam for french fries), you should probably do without so that the meal isn't derailed with conversation about your eating habits.
If the latter, I wouldn't ask.
4) how should the good host react to the above two requests?
If the host has it and wants to provide it (if you don't want to share the fancy "dijon ketchup" that you're saving for a special occasion, you shouldn't have to), he/she should bring it out. If not, "I'm sorry, we don't have any/don't keep it in the house" would be fine.