Yeah, I used to let stakeholders talk me into doing ridiculous requests, like "I wan't a separate form for cash customers". Have you ever been persuaded into building something you knew was utterly ridiculous?
No, never persuaded. But I did feel why they were asking something that they could handle, and understandable for them.
Especially older people, or not technical skilled, don't think in normalized data. And thus are not always happy with the way structured programs work.
But this brings me to a different interpretation of your title:
"Have you ever been confronted with building something with a design that others think it is utterly ridiculous?"
In that case: yes!
I must agree, the work I am doing is Access-unconventional: I use in principle unbound forms! And that is quite a statement!
The bounding of form controls to the fields makes form very, very static, apart from the fact that records can be locked.
In the proces of bounding the form "knows" where and how to store the information, but does nothing know about other wishes or constraints of the control as the user wants. For that you can use the BeforeUpdate or AfterUpdate events, but that introduces still more control dependencies.
Now take a 180 degrees turn, starting from the user. What are the properties of this control?
Store these in a metadate table, including the table and the field where the control "belongs to", and create the field in the BE.
Without going directly in the data-database, all is conducted from the FE, including all the controls behaviour. So, it is not necessary to have an in-between form between "user-controls" and table-fields, there is a complete separation. When entering a control on a form, a reference is made to the metadata table, and the control "knows" how to reach the corresponding field for retrieval or storage.
No lookup-tables, no comboboxes, no control classes, no form classes, no dependencies.
It is now possible to generalize all underlying processing, and thus automatically build applications. The form is just a carrier of "to-be-defined-controls", tuned by some code in modules, and the same form can be used for almost anything. Moreover, these form-definitions can be placed in a linked code-library, and shared over all applications.
Finally, because "forms" are completely dynamical, you can present your user "his/her form", not violating
normalization rules, including all wanted flexibilty.