Yes, likely the distinction between mod_alias and mod_rewrite as regards URL-path localization and matching, or perhaps the point that the "Redirect" directive uses prefix-matching, and that any URL-path-part appended to the client request but not specified in the Redirect match string will be appended to the substitution URL-path. e.g. your Redirect redirects requests for www.example.com/drink/2/
anything-here to www.example.com/folder1/folder2/keyword.html
anything-here".
See Apache mod_alias "Redirect" directive documentation for details.
One thing to consider is to continue to rewrite these old-URL requests to your script, where you may be able to use your existing database to easily "look up" the correct redirect URL, based on the association of "drink/2" with "keyword" in your database.
Another thing to consider is that adding ".html" to your new URLs gives no benefit, and only makes the URL longer.
Many threads here [webmasterworld.com] in the past few years have discussed going *to* extensionless URLs, rather than adding extensions to URLs. On my sites, I'd use "example.com/folder1/folder2/keyword" as the URL -- unless I could identify a good way to get rid of "/folder1/folder2" as well... :) This of course depends on your site, your goals, and whether "folder1" and "folder2" are actually additional keywords or not.
Jim