I think your mistake is hanging your hopes on a method that will clear up any misbehaviour at once and for good. Ime toddlers just don't work like that; even with the best method you have to be prepared to repeat it again and again. The fact that you punish her once and she then does it again doesn't mean you have failed or the method has failed; it might just mean you have to keep persevering.
My mantra at this age used to be "child-rearing is work in progress".
I usually reserve time out for really severe behaviour e.g hitting/ biting as I don't like doing it either. The thing to remember is consistency- the behaviour might not improve immediately. Discipline isn't a magic solution to bad behaviour, it's something that is built up over time so if your DC misbehave they know there WILL be a consequence. So keep removing/ignoring and eventually she will get bored or grow out of it. The only bad thing you can do is to do nothing IMO
I've tried the firmly but calmly removing the drink as soon as she misbehaves but it doesn't seem to stop it happening again an hr or 2 later. Maybe I need to look into time out. I'll have a scout around house to see where I could put her for a minute of time out. It'll break my heart slightly to do time out as I still feel she's my baby but I don't want her to grow up naughty & undisciplined for her own sake!
I would suggest simply give her a warning that if she throws/spits her drink that it will be taken away. Then when she does it again quietly and calmly take away the cup/whatever. Calm consistency and simple consequences is key at this age IMO.
Also give her positive attention and praise when she behaves in a way you like and withdraw attention/act bored/ignore when she behaves badly. So with the drinking when she's drinking nicely comment on that in a positive happy voice and when she starts to mess around then do the warning then remove the drink and ignore. If you give her lots of attention and try and get her to listen to your explanations when she misbehaves she will do it more as she's found a way to get instant attention.
Institute "time out" - it's good to start this at about 18 months as you are correct that developmentally there is now some understanding of cause and effect. However, it has to be absolutely immediate as if you even so much as finish putting on the laundry before doing the below the toddler-brain won't make the connection between the naughty behaviour and the consequence.
Then toddler is doing something naughty. (a) (as you already are) make eye contact and say "no, you must not do (X - explain exactly the thing not just saying "do that") or you will have a time out" (b) toddler does it again (of course) (c) put them in "time out" (see below) - at 18 months this should be for no more than a minute, if she gets very upset then probably just 30 seconds to start off with - as they get older it should be an additional minute per year of age (d) at end of the appropriate time (during which she may well have started to cry), go back and give a big cuddle - say "I love you very much but you had to have a time out because you must not (X) and you did after I told you not to. The time out is over now" ... repeat as often as necessary.
As for "time out" location - at 18 months we used either the playpen (all toys removed) or strapped in the high chair facing a blank wall - and left the room. Later you can have sitting on the bottom stair but that only works once you are obedient enough to sit still when they are told to. Choose something that works for you - it has to be somewhere boring with nothing to play with where they can't see you, but where they are safe.
DD is 20 months & have been using 'distraction' whenever she acts up for months as I read you can't really use proper discipline until at least 2 years. DD however since 18 months has been talking in full sentences & counting to 10 so developmentally I think she's far enough ahead that I need to start disciplining soon else I'm going to end up with a little monster! Her particular 2 things at the moment are drinking water/milk then when she's had enough continuing to drink but spitting the liquid out or shaking the cup to try make water go everywhere and she also quite likes to throw things, sometimes food but more often than not anything she can reach when frustrated/tired.
I've been trying to get down to her level & make eye contact whilst saying sternly that that's not good behaviour & mummy is cross but the little minx finds it either hilarious or sometimes the best challenge in the world to avoid eye contact & will fling herself about until I physically hold her in place, then will roll her eyes to back of head to avoid eye contact!
I've got DS due in 6 weeks so really want to try calm DD down a bit before then but don't really know where to start. I don't really want to smack / shout all the time. What else works at this age?