We had this at a telecom I worked at in the early 2000s. It's easy to sit back and bitch about "the things you have to use at work", so I usually avoid it. However, short of whatever-the-heck-is-used-for time tracking/time sheets[0], this application was the single largest software cause of rage at the company that I've ever been exposed to in my entire working life.

My experience with the application was limited mostly to expense report submissions and for that simple task, it was abysmal. It was so bad that it was hard not to conclude that it was chosen due to its horribleness: making employees think twice about sending in expense reports. And we did. If it was a small dollar amount, the time cost exceeded the monetary cost.

The UI, at the time (2005...ish), actually looked pretty slick compared to most web-based tools. It stopped there. Date fields, upon clicking, reloaded the whole page (which you waited for), to display a pop-up calendar, which when the date was clicked, reloaded the whole page. At least once while filling in the expense reports myriad of screens, the page would fail to load and you'd have to hit the refresh button, or you'd make a mistake and need to go back. Clicking any of the usual buttons in the browser for those functions invariably lead to an account DoS feature.

I don't remember the details, but it basically caused the system to get confused into thinking there were two of you and it gave priority to the "you" living in the alternate universe where you didn't click "Back" or "Refresh" and were still filling out your expense report. You had to wait for the first session to time out before you could continue, and the error message you received was placed in the "status bar" and appeared to be the name of a const variable "APP_BOWEL_MVMT_ERR" that gave no hint as to what the fsck was wrong. There was admin "unlock" feature (help desk calls were met with "just sit tight"). So you would give up and forget to return 3 hours later. A few days of this and the expense deadline passed.

There wasn't a more hated "enterprise tool" in our shop and we ran every single one of Microsoft's early attempts at web-ifying the world (early Sharepoint is the only I recall, but we had others).

It was decided to shelve it after a last-ditch effort was made to fix it. We'd put a job opening up to get a solid SAP developer and got ... someone ... after bumping the salary up several times. The rumor is that the gentleman we hired was the highest paid developer at the company. He lasted 3 months before taking a job at IBM at a substantially higher salary. A look at his job history and the circumstances surrounding it made it not unreasonable to conclude that we weren't the job he was ever interested in and talking to other SAP folks ... this sounded extremely common. The joke was "if you have to work with that crap, it better pay well".

We finally ditched it when we were acquired by another telecom; while most of the choices "our side"'s IT made were fought for, nobody advocated for keeping SAP ... even having no idea of what the acquiring company was using -- we knew if it wasn't SAP, it had to be better. It was Oracle; and it might be the only time I've heard a colleague speak positively about "Oracle" outside of The Matrix[1].

[0] Time sheet software always comes to mind. Nobody likes doing "time sheets" at any job I've ever had, but at every company I've ever worked for, we've had a home-grown time tracking tool. 30,000 employees to 100 employees. Every. Single. Company. It's such a necessary "evil" that even at those places where executives had known deadly-allergic reactions to building anything in-house, somehow a case was able to be made to build a completely custom time tracking tool tailored precisely to the businesses perceived needs. Death, taxes and time sheets, I guess.

[1] My experience with Oracle up to that point was Sun's acquisition and a perception-backed-by-coincidence that when the Oracle sales guys couldn't land a deal, their software auditors would step in to give the necessary motivation.