i hate to say this up front, but why have checkboxes if they're gonna be checked anyway? can't you display a fake 'checked' images and keep the values in a hidden field?
<p />
in any case, you'll need to do custom validation.
1. pass the number of items into a hidden field (you can use the varStatus attribute of the c:forEach tag to keep a counter, or have it passed to the page in the request, or set it in the action using form.set("hiddenFieldName",checkboxCollectionCount)).
2. add a custom validation method to check the number of checkboxes checked agains the value in the hidden field (see this link - validateTwoFields example for how to set up custom validation -
http://struts.apache.org/userGuide/dev_validator.html)