the checkout pages created by eCart do not have validation applied, you need to use the validation provided by form toolkit to add the validation.
different gateways require the expiration date in different formats, PayPal requires a 4 digit year "2012" wheres Authorize.net requires a 2 digit year "12"
you can certainly convert the expiration year and month text boxes to select lists if you like as long as you use the same name.
for the checkout failure issue, see the "Debugging eCart transaction failed issues" tutorial on the eCart support page:
ecart/