You probably don't need any hefty conditional statements. If you're doing it to simulate loops and other imperative programming features, it may be easier to create a function in Custom Code to do it.
An alterantive is to look for an algorithm for the particular calculations you're doing. For example this answer can be a great basis for getting your needed dates, be it with a little adjustment. Here's how it would work for "The first Saturday of this month":
Day of the week for the day 1 of this month:
=Weekday(DateAdd("d", 1 - Now().Day, Now()), FirstDayOfWeek.Sunday)
How many days should we add to that first day of the month:
=7 - Weekday(DateAdd("d", 1 - Now().Day, Now()), FirstDayOfWeek.Sunday)
So the date for the first Saturday of the month is:
=DateAdd("d", 7 - Weekday(DateAdd("d", 1 - Now().Day, Now()), FirstDayOfWeek.Sunday), DateAdd("d", 1 - Now().Day, Now()) )
There are probably even smarter ways to do this, though VBScript expressions are a wee bit limited. The example above can be tweaked to get the "Friday of the last week of the month" as well.
Bottom line: the (indirect, but generic) answer to your question is to think about the algorithm to get to your wanted date (as declarative as possible, because you can't do loops and stuff in Expressions easily).