Xword makes small crosswords. I wrote it for my five-year-old who was learning to write so the sample clues are pitched at that level. There's no reason you shouldn't add harder clues.
The Options|Words dialog allows you to change the possible answers and clues. The format is:
answer:clue:clue:clue:...
If the answer is included in the crossword then one of the clues will be chosen at random. (In the sample XWord.wrd file, each answer has only one clue.)
Freeware