I won a couple of battles using militia, but I lost some due to their cowardice as well. Their main weakness is their morale: they won't kill much, but they can hold up the enemy for a while if you can keep them from running away. You need to put them in deep formation, try as best you can to keep their flanks covered and keep them near your captain or general, and then they can make a decent holding unit. It's quite safe to use one or two of them when you have a decent core of stronger units; when properly supported they are less likely to run away, but you should really only use them as fodder units. The exception is the militia hoplite. This unit actually makes a decent, if still unrelaible, combat unit.
I never really bothered with peasants: they are no good on the battlefield and it feels like cheating to use them on the garrison. Apart from the latter duty, they may be some use as a fodder unit, but in general I find militias work better at that due to their shields. They suffer less casualties and hence are less likely to run.
Bookmarks