Thanks Kolloh. I was hoping there would be another solution and certainly a greater response. What about if I became a full node and sent and received my own transactions?
Being a ful node has no effect on the creation of transactions at all.
The network is not able to tell if a transaction initially came from a full node or not.
Transactions have a size:
The more inputs that you need to include to provide value to your transaction, the larger the transaction is (approximately 148 bytes per input).
The more outputs that your transaction uses to distribute that value, the larger the transaction is (approximately 34 bytes per output).
Every transaction has a certain amount of data that is required regardless of the number of inputs or outputs (approximately 10 bytes per transaction).
So, if you want to create a smaller transaction you either need to use less inputs, or you need to generate less outputs.
The fees are considered on a fee-per-byte basis. So if fast confirmation requires 0.00000112 BTC per byte, and you have a 208 byte transaction, the necessary fee will be at least 0.00023296 BTC.
You can create a transaction with a smaller fee if you want to, but the miners can simply ignore your transaction and confirm one that pays them more money per byte (meaning it will take longer for your transaction to confirm).
If you can't make your transactions any smaller, then your only other option is to find ways to get miners to include your cheap transactions. One way to do this is to keep track of what the average fee is on transactions on the network and only send your transactions at times when the average is lower.
Another way would be to convince mining pools to sign contracts with you to prioritize your transactions (of course they'll only do this if they see a benefit for them, if you aren't going to give them more money, then what incentive are you able to provide?).
Another option would be to run your own mining pool and confirm your own transactions. Of course, if you pool isn't profitable, then you are still paying the extra cost. You're just paying it in the form of equipment and electricity instead of transaction fees. If your pool is profitable, then you are STILL paying the extra cost, you are just paying it in the form of reduced pool profits (since your pool is skipping the high fee transactions in order to include your cheaper ones).
There isn't a lot of room for magic here. Blocks are 1 megabyte in size. Transaction have a size in bytes, and miners (and mining pools) are businesses that are trying to maximize their profits. If a miner is going to choose a transaction for the block they are working on, they don't have any good reason to choose a transaction that will pay them less per byte instead of another transaction that pays more.