I used Custom List forms created in SharePoint Designer exclusively when we were on WSS 3.0. I wrote my own custom validation scripts, CSS and spruced them up to be more dynamic than Infopath forms. It did involve more work initially to write the JavaSrcript files and CSS for consistent appearance and function for all of our forms. But the markup is way better then SP's table love. jQuery was also a huge benefit in making the forms super-dynamic, think Web 2.0. You can modify your custom forms from the generated XSLT in SP Designer or write your own HTML, JavaScript with SPServices for submission and if you really want to get fancy and you need to bind JSON to your fields, use Knockout.js or Backbone.js for your MVC. I often duplicated InfoPath's ability to import data sources from other data sources. For instance a one-to-many parent list to a child list with editable transactions within a single approval form. Each item had it's own jQueryUI dialog box with an attachment field. Once my framework was in place, all forms after that went up quick. InfoPath is a great tool but I like the control I have writing my own UI code.