OMG, where do I start...
#1 most annoying thing: Cannot write data to a reference field. In other words, you can view parent table data in a child table, but you can't edit/write data from the child table view back into the parent. It is SOOOOO annoying to the user experience. Just fix that, and you'll save years and years of wasted clicking by users as they navigate up the table chain to find where the data lives.
#2 most annoying thing. Doesn't have a really responsive search (sometimes if there are too many records, it actually gives you a pop-up window to select the record from). WTF? Seriously? There needs to be some kind of super-fast auto-fill guessing like when one types in the search box of so many other websites.
#3, There's little flexibility with visual look & feel.
Asset management, process tracking, CRM, data hosting for other web services (using the QB API).